请问vb里延迟的函数是什么?在线等!

zjunlucky 2003-09-05 01:54:33
先谢谢了!
...全文
49 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingming81 2003-09-05
  • 打赏
  • 举报
回复
用timer来控制,取得两个时间之差,如果此差值在某一时间范围内则不执行任何操作,在时间范围外才执行操作!
zjunlucky 2003-09-05
  • 打赏
  • 举报
回复
我还是选择了DoEvents,谢谢各位的热情帮助,可惜我给的分太少了,下回一定补上!
zjunlucky 2003-09-05
  • 打赏
  • 举报
回复
不过用api也有个缺陷,在sleep期间,整个vb程序停止了,不能操作,但能记忆操作,如果有操作,等唤醒后就自动关闭了!希望大家继续讨论
liul17 2003-09-05
  • 打赏
  • 举报
回复
Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

sleep 500
zjunlucky 2003-09-05
  • 打赏
  • 举报
回复
用DoEvents的话可能会出问题,“在第一次 DoEvents 返回之前,不能再次被其他部分的代码调用;否则会产生不可预料的结果。此外,如果其它的应用程序可能会和本过程以不可预知的方式进行交互操作,那么也不要使用 DoEvents,因为此时不能放弃控制权。”
所以我还是倾向于用前面的方法:api
射天狼 2003-09-05
  • 打赏
  • 举报
回复
Public Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

sleep "1000"
gfugfu 2003-09-05
  • 打赏
  • 举报
回复
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


'调用方法
Sleep 5000 '是毫秒
fbmsf 2003-09-05
  • 打赏
  • 举报
回复
doevent
LuYao 2003-09-05
  • 打赏
  • 举报
回复
偶还是觉得这样好:
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Public Sub Delay(milSecond As Long)
Dim SaveTime As Double
SaveTime = timeGetTime
Do While timeGetTime < SaveTime + milSecond
DoEvents
Loop
End Sub
lihonggen0 2003-09-05
  • 打赏
  • 举报
回复
另外的方法也可以:

http://expert.csdn.net/Expert/topic/1951/1951877.xml?temp=.1606104
zjunlucky 2003-09-05
  • 打赏
  • 举报
回复
还是要用掉api函数,我以为有delay、wait之类的,谢谢二位了!
lihonggen0 2003-09-05
  • 打赏
  • 举报
回复
自己写延时程序

Public Sub Delay(mSec As Long)
On Error GoTo ShowErr

Dim TStart As Single

TStart = Timer

While (Timer - TStart) < (mSec / 1000)
DoEvents
Wend
Exit Sub
ShowErr:
MsgBox Err.Source & "------" & Err.Description
Exit Sub

End Sub
lxxldd 2003-09-05
  • 打赏
  • 举报
回复
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
lihonggen0 2003-09-05
  • 打赏
  • 举报
回复
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()

Me.Caption = "Your system will sleep 5 sec."
'Sleep for 5000 milliseconds
Sleep 5000
Me.Caption = ""
End Sub

Private Sub Form_Load()
Me.Caption = ""
Command1.Caption = "Sleep ..."
End Sub

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧