delphi里有没有延时的函数?(30分)

  • 主题发起人 主题发起人 yxuehui
  • 开始时间 开始时间
Y

yxuehui

Unregistered / Unconfirmed
GUEST, unregistred user!
Pascal里可以用delay(),不知delphi 有没有?
 
有(我很懒^_^)
 
为了分,我什么都不顾了,脸也不要了 :)
用Api函数 Sleep();
参数为毫秒数,如 Sleep(1000),延时1秒.
 
你说的是否太严重了?
 
程序在sleep时不能响应用户输入,还不如自己做一个更好的sleep.
 
用一个线程sleep,主线程跟他用信号量同步
 
直接用for i=-10000000 to 100000000do
;
:)
 
有时不得不延时,sleep()方便
 

aMs毫秒
procedure SysDelay(aMs: Longint);
var
TickCount : LongInt;
begin
TickCount:=GetTickCount;
while GetTickCount - TickCount < aMsdo
Application.ProcessMessages;
end;
 
jiangtao的方法很好
 
空循环也能得到延迟的效果。
总之这类的方法多的是,关键还看个人掌握的程度。
 
如果你需要程序不响应任何输入,那么Sleep
JiangTao的方法很不错
空循环延时不准
 
windows是事件驱动的, 你的延时程序肯定写在在一个事件处理过程中吧,很多延时程序是希望
在一段时间内不再接受相同的消息或事件,这种情况下你一直发送application.processmessages
还延什么时呀?
 
我用延时的目的是希望当一个过程要写数据库时,发觉被LOCK了,所有希望
延时瞬间再企图写库.谢谢各位大虾的指点.
 
可以截取数据库解琐的事件,采用postmessage的方法来唤醒此过程.
 
如何截取数据库解琐的事件?
 
processmessages发现有事件时就转去处理别的事件,使得循环定时不准确.
 
我用延时的目的是希望当一个过程要写数据库时,发觉被LOCK了,所有希望
延时瞬间再企图写库.谢谢各位大虾的指点.
应该使用Timer事件
 
delay这个函数D4本身不自带,其他的包有。实现延时有多种方法
1,用一段循环
2,用timer
3,用DecodeDate或DecodeTime来处理(D4本身自带)
 
在你这种情况下用sleep最好
 
后退
顶部