我有4个COMMAND按钮,每个COMMAND都有自己的代码,现在我要求从COMMAND1运行5秒后,COMMAND1停止,接着运行COMMAND2,5秒后又自动停止COMMAND2,又开始运行COMMAND3,5秒后又停止COMMAND3,最后运行COMMAND4,5秒后,也停止COMMAND4,最未来个MSGBOX就行了,如何写此代码?

解决方案 »

  1.   

    PRIVATE SUB FORM_LOAD()
    LABEL1.CAPTION=0           '加个计数用的
    LABEL1.VISABLE=FALSE       '隐藏LABEL1
    TIMER1.INTERVAL=1000       '加时间控件
    END SUBPrivate 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
      

  2.   

    不理解啊,我一直只会运行Command1的代码,不会停止一个运行中的Command1,学习中,等高手
      

  3.   

    Command1-4的运行时间一定少于5秒
      

  4.   

    你在command里写了什么代码?
      

  5.   

    仅有定时器代码是不够的。Dim Running_Index As IntegerPrivate 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 SubPrivate Sub Form_Load()
        Running_Index = 1
        Command1_Click
        Timer1.Inteval = 5000
        Timer1.Enabled = True
    End SubPrivate Sub Command1_Click
    ...... '在循环中
        If Running_Index > 1 Then Exit Sub
    ......
    End SubPrivate Sub Command2_Click
    ...... '在循环中
        If Running_Index <> 2 Then Exit Sub
    ......
    End SubPrivate Sub Command3_Click
    ...... '在循环中
        If Running_Index <> 3 Then Exit Sub
    ......
    End SubPrivate Sub Command4_Click
    ...... '在循环中
        If Running_Index <> 4 Then Exit Sub
    ......
    End Sub
      

  6.   

    这个问题好象不用定时更方便吧?
    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
      

  7.   

    对了你的仃止是什么意思啊?
    是不是你的command1中的程序5秒运行不会结束的?
      

  8.   

    如果你自己有办法停止的,那就把代码放在call之前
      

  9.   

    说简单些,就一TEXTBOX里显示“AAAAA”5秒后,显示“BBBBB”,再加上5秒后显示“END”如果写?
      

  10.   


    Private intCount As IntegerPrivate Sub Form_Load()
        Timer1.Interval = 5000
        Timer1.Enabled = False
    End SubPrivate Sub Command1_Click()
        Text1.Text = "AAAAA"
        intCount = 0
        Timer1.Enabled = True
    End SubPrivate 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
      

  11.   

    同意啊,再加一个计数器
    intCount = 0
      

  12.   

    希望你能明白
    Option Explicit
    Dim intCount As IntegerPrivate Sub Command1_Click()
        Text1.Text = "AAAA"
    End SubPrivate Sub Command2_Click()
        Text1.Text = "BBBB"
    End SubPrivate Sub Command3_Click()
        Text1.Text = "CCCC"
    End SubPrivate Sub Command4_Click()
        Text1.Text = "DDDD"
    End SubPrivate Sub Form_Load()
        intCount = 0
    End SubPrivate 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
      

  13.   

    看你的问题描述,单纯使用Timer是不行的,因为VB6是单线程运行的。
    你可以试试API来等到系统启动的时间值(毫秒)不断做减法来得到时间间隔。
      

  14.   


    Timer 必须在代码编译成 .exe 之后,才能执行类似“中断”的功能。不要在调试状态下测试。