[VB6 ] 不使用TIMER寫跑馬燈發生的問題

看板Visual_Basic作者 (街角的子供達 )時間18年前 (2008/01/28 22:08), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/2 (看更多)
如題 我自己寫了一個程式 很單純的依序要讓四個燈造順序開啟 但是不知道為何 燈總是直接亮最後一顆 我使用BEEP來了解程式執行到何處 卻可以聽到四次聲響 但螢幕上卻不會顯示前三顆燈亮 請各位幫我解答一下 謝謝 Dim a As Integer Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click() For a = 1 To 4 Select Case a Case 1 Shape1.BackStyle = 1 Shape2.BackStyle = 0 Shape3.BackStyle = 0 Shape4.BackStyle = 0 Sleep (500) Beep Case 2 Shape1.BackStyle = 0 Shape2.BackStyle = 1 Shape3.BackStyle = 0 Shape4.BackStyle = 0 Sleep (500) Beep . . . . . .(跳過CASE3跟4) End Select Next Print a End Sub 我的程式就是這樣子 請各位多多指教 PS還想請問一下 interval設定的時間 指的是timer跑的速度對吧? 那他與sleep在哪些部份可互相取代呢? 還是說他其實是完全不能相提並論的 因為一個是直接暫停程式一個不是? 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.171.148

01/28 22:09, , 1F
對了 我A只設定跑到四可是印出A卻顯示五???
01/28 22:09, 1F

01/29 00:51, , 2F
有不用timer寫的特殊理由嗎 不然用timer比較方便吧
01/29 00:51, 2F

01/29 00:52, , 3F
我改成Sleep(5000)會出現很像當機的畫面@@
01/29 00:52, 3F

01/29 02:50, , 4F
timer是n毫秒呼叫一次那個function
01/29 02:50, 4F

01/29 02:51, , 5F
sleep類似do nothing n毫秒所以程式是還沒跑完的!!
01/29 02:51, 5F

01/29 02:52, , 6F
它內部是還有再跑,只是沒show出來,所以看起來像沒回應
01/29 02:52, 6F

01/29 09:50, , 7F
因為.....timer只有VB可以用 可是FOR哪邊都有 所以...
01/29 09:50, 7F
文章代碼(AID): #17dU7wkc (Visual_Basic)
文章代碼(AID): #17dU7wkc (Visual_Basic)