Chữ chạy trên form (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

daminhlt

Thành viên hoạt động
Tham gia
22/6/07
Bài viết
119
Được thích
223
Nghề nghiệp
Accounting
Lần trước mình co load file chữ chạy trên Form, nhưng mình thắc mắc là muốn Form không hoạt động nữa, thì dùng lịnh gì? vì khi chữ đang chạy trên Form mình đóng lại thì form tắt đi nhưng con chuột vẫn chưa trở lại vị trí bình thường,một lúc sau Form mới thực sự đóng lại. Mình muốn áp dụng nó lên Form của mình.
 
Lần chỉnh sửa cuối:
Nguyên văn bởi matmotmi
Lần trước mình co load file chữ chạy trên Form, nhưng mình thắc mắc là muốn Form không hoạt động nữa, thì dùng lịnh gì?
Cách viết code trong file này không cho phép can thiệp lúc code đang chạy. Muốn kiểm soát việc chạy chữ theo ý thích, mình nghĩ có 2 cách:
-Cách 1: Điều chỉnh các giá trị ở các ô B5, B6. Giá trị ở ô B6 quy định thời gian bằng giây mà form hiển thị. Nếu bạn thấy đợi lâu thì giảm con số này xuống.
-Cách 2: Chỉnh lại code một chút để có thể dùng lệnh dừng theo ý muốn:
Mã:
Option Explicit
Public lngSpeed As Long
Public strText As String
Public start As Boolean
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Demo()
   Application.Cursor = xlWait
   strText = Range("SplashMsg").Text
   lngSpeed = Range("SplashSpeed")
   start = True
    chay_chu
End Sub
Private Sub chay_chu()
    If start = True Then
    UserForm1.Show
      UserForm1.Label1.Caption = strText
      UserForm1.Label1.AutoSize = False
      strText = Mid(strText, 2) & Left(strText, 1)
      UserForm1.Label1.Caption = strText
       toc_do
    Else
      Application.Cursor = xlDefault
      Unload UserForm1
    End If
End Sub
Sub toc_do()
   Sleep lngSpeed
   DoEvents
   chay_chu
End Sub
Sub Undemo()
start = False
End Sub
 

File đính kèm

bác ơi! khai báo public như thế thì sẽ chiếm dụng bộ nhớ nhiều lắm, sử dụng 2 ,3 form có đặt chữ chạy là die liền. Bác có cách nào edit lại khi cần mới khai báo kô ạh?
Xin cám ơn
 
-Khai báo Public, bộ nhớ bị chiếm dụng nhiều hơn là vì các biến vẫn được lưu giữ trong cả quá trình chạy chương trình. Tuy nhiên, cũng khó xác định bằng con số chính xác cụ thể là khai báo như thế thì bộ nhớ bị chiếm dụng bao nhiêu %, còn %.
-Đoạn code trên, biến lngSpeed có thế chuyển vào thủ tục tocdo để bớt 1 biến public.
-Nhiều khi chương trình chậm hoặc die là do giải thuật nữa. Bạn có thể gởi chương trình bị die đó lên được không? Cần phải xác định nguyên nhân trước, rồi chỉnh sửa sau.
 
-Khai báo Public, bộ nhớ bị chiếm dụng nhiều hơn là vì các biến vẫn được lưu giữ trong cả quá trình chạy chương trình. Tuy nhiên, cũng khó xác định bằng con số chính xác cụ thể là khai báo như thế thì bộ nhớ bị chiếm dụng bao nhiêu %, còn %.
-Đoạn code trên, biến lngSpeed có thế chuyển vào thủ tục tocdo để bớt 1 biến public.
-Nhiều khi chương trình chậm hoặc die là do giải thuật nữa. Bạn có thể gởi chương trình bị die đó lên được không? Cần phải xác định nguyên nhân trước, rồi chỉnh sửa sau.
Nhưng khi Chữ đang chạy trên Form thì hầu như mình không làm gì được. Hình như lúc này nó đang thực hiện công việc chưa kết thúc của chương trình. Nếu muốn làm thì phải Stop. Vậy có cách làm nào mà chữ thì vẫn chạy, mà mình thì vẫn làm bình thường không.
 
Lần trước mình co load file chữ chạy trên Form, nhưng mình thắc mắc là muốn Form không hoạt động nữa, thì dùng lịnh gì? vì khi chữ đang chạy trên Form mình đóng lại thì form tắt đi nhưng con chuột vẫn chưa trở lại vị trí bình thường,một lúc sau Form mới thực sự đóng lại. Mình muốn áp dụng nó lên Form của mình.

Bắt đầu sự kiện chạy chữ bạn dùng
Application.EnableEvents = False


cuối code bạn tắt sự kiện
Application.EnableEvents =true
bạn nên sử dụng 1 nút commandbutton để tắt form chạy chữ và khi đó bạn vẫn làm việc bình thường trên cells.
Sub kethuc()
End
end sub
 
Thanks b nhìu nha nhưng không hiêu sao mình làm như sau:




Private Sub UserForm_Click()
Dim lLoop As Long, strText As String
Dim intPos As Integer
Dim lngNLoop As Long
Dim lngSpeed As Long

Application.Cursor = xlWait
strText = " Cac Quan Li Cua Hiep Hoi Bong Da Quoc Te ISIST "
lngNLoop = 100
lngSpeed = 200

Label1.Caption = strText
Label1.AutoSize = True
Label1.AutoSize = False
For lLoop = 1 To lngNLoop
strText = Mid(strText, 2) & Left(strText, 1)
Label1.Caption = strText
DoEvents
Sleep lngSpeed
Next lLoop
Application.Cursor = xlDefault
Unload Me
End Sub
bạn xem có đúng ko giùm mình hen.mình thấy nó báo lỗi ở Private Sub UserForm_Click()
Thanks trước nha.hihi
Có thể trao đổi qua ptham_nb91@yahoo.com
 
Web KT

Bài viết mới nhất

Back
Top Bottom