'1.程式名称:三种延迟程式执行的方法 '2.开发日期:04/10/1998 '3.开发环境:Visual Basic 5.0 中文专业版 + SP3 '4.作者姓名:宋世杰 (小翰,Jaric) '5.作者信箱:[email protected] '6.作者网址:http://fly.to/jaric 或 http://tacocity.com.tw/jaric '7.网址名称:Visual Basic 实战网 '8.注意事项:您可以任意散布本程式,但是请勿将以上说明删除,谢谢! ' 如果本程式经过您的修改,可以在下方加入您的个人资讯。Option Explicit Private Declare Function GetTickCount Lib "kernel32" () As Long Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Public Sub Delay1(second As Single) Dim BeforeTime As Single BeforeTime = Timer Do Loop Until Timer > BeforeTime + second End SubPublic Sub Delay2(second As Single) Dim BeforeTime As Long BeforeTime = GetTickCount Do Loop Until GetTickCount > BeforeTime + second * 1000 End SubPublic Sub Delay3(second As Single) Sleep second * 1000 End SubPrivate Sub Command1_Click() Call Delay1(5) End SubPrivate Sub Command2_Click() Call Delay2(5) End SubPrivate Sub Command3_CLick() Call Delay3(5) End Sub
'2.开发日期:04/10/1998
'3.开发环境:Visual Basic 5.0 中文专业版 + SP3
'4.作者姓名:宋世杰 (小翰,Jaric)
'5.作者信箱:[email protected]
'6.作者网址:http://fly.to/jaric 或 http://tacocity.com.tw/jaric
'7.网址名称:Visual Basic 实战网
'8.注意事项:您可以任意散布本程式,但是请勿将以上说明删除,谢谢!
' 如果本程式经过您的修改,可以在下方加入您的个人资讯。Option Explicit
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Public Sub Delay1(second As Single)
Dim BeforeTime As Single
BeforeTime = Timer
Do
Loop Until Timer > BeforeTime + second
End SubPublic Sub Delay2(second As Single)
Dim BeforeTime As Long
BeforeTime = GetTickCount
Do
Loop Until GetTickCount > BeforeTime + second * 1000
End SubPublic Sub Delay3(second As Single)
Sleep second * 1000
End SubPrivate Sub Command1_Click()
Call Delay1(5)
End SubPrivate Sub Command2_Click()
Call Delay2(5)
End SubPrivate Sub Command3_CLick()
Call Delay3(5)
End Sub
语句1
doevents()
语句2'===============================
DoEvents 函数
转让控制权,以便让操作系统处理其它的事件。语法DoEvents( )说明DoEvents 函数会返回一个 Integer,以代表 Visual Basic 独立版本中打开的窗体数目,例如,Visual Basic,专业版,在其它的应用程序中,DoEvents 返回 0。DoEvents 会将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。DoEvents 对于简化诸如允许用户取消一个已启动的过程 — 例如搜寻一个文件 — 特别有用。对于长时间过程,放弃控制权最好使用定时器或通过委派任务给 ActiveX EXE 部件来完成。以后,任务还是完全独立于应用程序,多任务及时间片由操作系统来处理。小心 确保以 DoEvents 放弃控制权的过程,在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。