发布网友 发布时间:2024-10-24 18:58
共4个回答
热心网友 时间:2小时前
基本的知识就不罗唆了
Timer是记录当前时刻的函数, Timer X 1000就是毫秒数.
变量T2用于记录程序运行最开始的时刻(固定不变)
变量T1用于记录当前的时刻(变化)
T2 - T1即时刻差, 当时刻差<指定值,Sleep函数让程序不做事,但Do events确保VB仍然响应其它事件.
当时刻差>指定值时,延迟结束, 这就是程序的原理.
这里要注意一个重要细节: 一般情况下T1(当前时刻) > T2(最开始时刻), 但当T2是第一天,而T1是第二天时, 有可能T1 < T2, 因为Timer函数返回的是当前时刻距离当天零点的间隔时长. 因此代码中作了判断:加上一个周期的毫秒数(1天即800000毫秒)
热心网友 时间:2小时前
..
热心网友 时间:2小时前
留名,关注
热心网友 时间:3小时前
Public Function Wait(WTime As Long) Dim T1 As Long, T2 As Long, T As Long'函数
On Error Resume Next '如果出错则跳过,永不提示出错
T1 = Timer * 1000'申明变量T1,但不知你的Timer是是个全局变量还是常量
T2 = Timer * 1000''申明变量T2
T = T1 - T2'函数传入参数T取值=T1-T2
'下面7行用DO循环加IF条件进行对T取值(do until 循环用法是执行一次后后再判断条件)
Do Until T > WTime
T1 = Timer * 1000
If T1 < T2 Then'如果T1<T2
T = (T1 - T2) + 800000'为T取值
Else'否则
T = T1 - T2'为T取值
End If'IF条件结束
Sleep (20)'暂停20ms(毫秒)
DoEvents'这个是VB特别用得少的地方,转让控制权给系统,以防键盘鼠标长时间没反应
Loop'DO循环结束
End Function'函数结束