我做了个延时程序,是当需要延时时,触发一个Timer控件。
Timer控件计算延时时间是做到了,
但是我没有办法阻止触发Timer控件后面的程序继续进行(就等于没有延时呀),
请问这要怎么办呀!!!
Private Sub Command1_Click()Image22.Picture = LoadPicture(Module1.TP(5))           '开泵
MSComm1.Output = Module1.OutData(1)                    '开泵Module1.YSSJ = 180        '延时3分钟
Module1.YSJS              '触发Timer控件
''''''''''''''''''''''''''''''''''''''
''''''''''延时3分钟开阀'''''''''''''''
''''''''''''''''''''''''''''''''''''''
MSComm1.Output = Module1.OutData(3)                    '开启2号阀
Image9.Picture = LoadPicture(Module1.TP(1))            '开启2号阀Module1.YSSJ = 20
Module1.YSJS
''''''''''''''''''''''''''''''''''''''
''''''''''延时20秒请求水质''''''''''''
''''''''''''''''''''''''''''''''''''''
MSComm1.Output = Module1.OutData(5)                    '请求水质Label8.Caption = Module1.InData                        '读取串口Image22.Picture = LoadPicture(Module1.TP(6))           '关泵
MSComm1.Output = Module1.OutData(2)                    '关泵Image9.Picture = LoadPicture(Module1.TP(2))            '关闭2号阀End Sub

Module1.YSSJ = 180        '延时3分钟
Module1.YSJS              '触发Timer控件
执行完后,下面的程序继续执行,
有没有别的办法不让下面的继续执行呀

解决方案 »

  1.   

    如果是这个目的的话你可以使用sleep
      

  2.   

    sleep好像会将程序挂起,我只是不希望它在这段程序中不向下运行,在其他地方,还是可以响应其他动作,而且,好像sleep只能在1分钟左右
    那要是goto具体是怎么样的呢?
    能不能详细点
      

  3.   

    用这个延时函数试试,单位是毫秒Public Declare Function GetTickCount Lib "kernel32" () As Long
    Public Sub TimeDelay(DT As Long)    Dim tt As Long
        
        tt = GetTickCount
        Do
            DoEvents
        Loop Until GetTickCount - tt >= DTEnd Sub
      

  4.   

    能帮我标上注释吗?
    我刚学vb不久
    GetTickCount是什么意思
      

  5.   

    将上面的内容复制到模块中在需要延时的地方写如下代码:call timedelay(1000)'延时1000毫秒,即1秒
    GetTickCount是一个api函数
      

  6.   

    那call timedelay()会不会不能触发太长的时间呢?
    因为sleep好像就只能是1分钟左右我写的就是像lsftest()说的,但是第一次触发完Timer以后,他就会跳会程序继续向下执行
      

  7.   

    多用个timer控件吧,清晰一点
      

  8.   

    “多用个timer控件吧,清晰一点”
    那是怎么样的
    能大概讲讲不(越细越好)
      

  9.   

    不好怎么说 呵呵
    都什么时候还来学vb阿我的建议是你如果要用time干脆把暂停后面的过程放在timer去因为time控件是过了那么长时间以后才运行的 你放进去以后就会等段时间后再运行你放进去的函数
      

  10.   

    增加一个控件,初始时其enable属性为false,interval属性设置1000(既每秒触发一次)事件里写private sub timer2_timer()tt=tt-1  '这里的tt为你的等待时间end sub
    你的程序做这样的修改:Private Sub Command1_Click()Image22.Picture = LoadPicture(Module1.TP(5))           '开泵
    MSComm1.Output = Module1.OutData(1)                    '开泵Module1.YSSJ = 180        '延时3分钟
    Module1.YSJS              '触发Timer控件
    ''''''''''''''''''''''''''''''''''''''
    ''''''''''延时3分钟开阀'''''''''''''''         '以下所有要延时的地方,都加雷同的代码
    tt=3*60
    timer2.enable=true
    do
      events
    loop until tt>=0
    timer2.enable=false''''''''''''''''''''''''''''''''''''''
    MSComm1.Output = Module1.OutData(3)                    '开启2号阀
    Image9.Picture = LoadPicture(Module1.TP(1))            '开启2号阀Module1.YSSJ = 20
    Module1.YSJS
    ''''''''''''''''''''''''''''''''''''''
    ''''''''''延时20秒请求水质''''''''''''
    ''''''''''''''''''''''''''''''''''''''
    MSComm1.Output = Module1.OutData(5)                    '请求水质Label8.Caption = Module1.InData                        '读取串口Image22.Picture = LoadPicture(Module1.TP(6))           '关泵
    MSComm1.Output = Module1.OutData(2)                    '关泵Image9.Picture = LoadPicture(Module1.TP(2))            '关闭2号阀End Sub
      

  11.   

    Dim delaying As BooleanPrivate Sub Command1_Click()Image22.Picture = LoadPicture(Module1.TP(5))           '开泵
    MSComm1.Output = Module1.OutData(1)                    '开泵delaying = True
    Module1.YSSJ = 180        '延时3分钟
    Module1.YSJS              '触发Timer控件
    ''''''''''''''''''''''''''''''''''''''
    ''''''''''延时3分钟开阀'''''''''''''''
    ''''''''''''''''''''''''''''''''''''''
    Do While delaying
    LoopMSComm1.Output = Module1.OutData(3)                    '开启2号阀
    Image9.Picture = LoadPicture(Module1.TP(1))            '开启2号阀Module1.YSSJ = 20
    Module1.YSJS
    ''''''''''''''''''''''''''''''''''''''
    ''''''''''延时20秒请求水质''''''''''''
    ''''''''''''''''''''''''''''''''''''''
    Do While delaying
    LoopMSComm1.Output = Module1.OutData(5)                    '请求水质Label8.Caption = Module1.InData                        '读取串口Image22.Picture = LoadPicture(Module1.TP(6))           '关泵
    MSComm1.Output = Module1.OutData(2)                    '关泵Image9.Picture = LoadPicture(Module1.TP(2))            '关闭2号阀End SubPrivate Sub Timer1_Timer()
        delaying = False
    End Sub
      

  12.   

    delaying = True
    Module1.YSSJ = 20
    Module1.YSJS
    ''''''''''''''''''''''''''''''''''''''
    ''''''''''延时20秒请求水质''''''''''''
    ''''''''''''''''''''''''''''''''''''''
    Do While delaying
    Loop