我有4個COMMAND按鈕,每個COMMAND都有自己的代碼,現在我要求從COMMAND1運行5秒后,COMMAND1停止,接著運行COMMAND2,5秒后又自動停止COMMAND2,又開始運行COMMAND3,5秒后又停止COMMAND3,最后運行COMMAND4,5秒后,也停止COMMAND4,最未來個MSGBOX就行了,如何寫此代碼?
uj5u.com熱心網友回復:
PRIVATE SUB FORM_LOAD()LABEL1.CAPTION=0 '加個計數用的
LABEL1.VISABLE=FALSE '隱藏LABEL1
TIMER1.INTERVAL=1000 '加時間控制元件
END SUB
Private Sub Timer1_Timer()
LABEL1.CAPTION=LABEL1.CAPTION+1
IF LABEL1.CAPTION=5 THEN
COMMAND1_CLICK
IF LABEL1.CAPTION=10 THEN
'停止COMMAND1
'開始COMMAND2
IF LABEL1.CAPTION=15
'停止COMMAND2
'開始COMMAND3
END IF
END IF
END IF
End Sub
uj5u.com熱心網友回復:
不理解啊,我一直只會運行Command1的代碼,不會停止一個運行中的Command1,學習中,等高手uj5u.com熱心網友回復:
Command1-4的運行時間一定少于5秒
uj5u.com熱心網友回復:
你在command里寫了什么代碼?uj5u.com熱心網友回復:
僅有定時器代碼是不夠的。Dim Running_Index As Integer
Private Sub Timer1_Timer()
Running_Index = (Running_Index + 1)
Select Case Running_Index
Case 2
Command2_Click
Case 3
Command3_Click
Case 4
Command4_Click
Case Else
Timer1.Enabled = False
MsgBox "Stop"
End Select
End Sub
Private Sub Form_Load()
Running_Index = 1
Command1_Click
Timer1.Inteval = 5000
Timer1.Enabled = True
End Sub
Private Sub Command1_Click
...... '在回圈中
If Running_Index > 1 Then Exit Sub
......
End Sub
Private Sub Command2_Click
...... '在回圈中
If Running_Index <> 2 Then Exit Sub
......
End Sub
Private Sub Command3_Click
...... '在回圈中
If Running_Index <> 3 Then Exit Sub
......
End Sub
Private Sub Command4_Click
...... '在回圈中
If Running_Index <> 4 Then Exit Sub
......
End Sub
uj5u.com熱心網友回復:
用4個命令按鈕來執行,太哆嗦了!可以搞成自動的。
uj5u.com熱心網友回復:
這個問題好象不用定時更方便吧?call command1_click
start = Timer
Do While Timer < start + 5'不占用記憶體5秒死回圈
DoEvents
Loop
call command2_click
start = Timer
Do While Timer < start + 5
DoEvents
Loop
call command3_click
start = Timer
Do While Timer < start + 5
DoEvents
Loop
call command4_click
uj5u.com熱心網友回復:
對了你的仃止是什么意思啊?是不是你的command1中的程式5秒運行不會結束的?
uj5u.com熱心網友回復:
如果你自己有辦法停止的,那就把代碼放在call之前uj5u.com熱心網友回復:
說簡單些,就一TEXTBOX里顯示“AAAAA”5秒后,顯示“BBBBB”,再加上5秒后顯示“END”如果寫?uj5u.com熱心網友回復:
Private intCount As Integer
Private Sub Form_Load()
Timer1.Interval = 5000
Timer1.Enabled = False
End Sub
Private Sub Command1_Click()
Text1.Text = "AAAAA"
intCount = 0
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Select Case intCount
Case 0
Text1.Text = "BBBBB"
Case 1
Text1.Text = "END"
Timer1.Enabled = False
End Select
intCount = intCount + 1
End Sub
uj5u.com熱心網友回復:
同意啊,再加一個計數器intCount = 0
uj5u.com熱心網友回復:
希望你能明白Option Explicit
Dim intCount As Integer
Private Sub Command1_Click()
Text1.Text = "AAAA"
End Sub
Private Sub Command2_Click()
Text1.Text = "BBBB"
End Sub
Private Sub Command3_Click()
Text1.Text = "CCCC"
End Sub
Private Sub Command4_Click()
Text1.Text = "DDDD"
End Sub
Private Sub Form_Load()
intCount = 0
End Sub
Private Sub Timer1_Timer()
intCount = intCount + 1
Select Case intCount
Case 1
Call command1_click
Case 2
Call command2_click
Case 3
Call command3_click
Case 4
Call command4_click
Case 5
MsgBox "EEEE"
End Select
End Sub
uj5u.com熱心網友回復:
看你的問題描述,單純使用Timer是不行的,因為VB6是單執行緒運行的。你可以試試API來等到系統啟動的時間值(毫秒)不斷做減法來得到時間間隔。
uj5u.com熱心網友回復:
頂一下,,,,
uj5u.com熱心網友回復:
Timer 必須在代碼編譯成 .exe 之后,才能執行類似“中斷”的功能。不要在除錯狀態下測驗。
uj5u.com熱心網友回復:
沒看懂,還需要學習呀轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/142413.html
標籤:控件
