请问:DELPHI中延时是哪个函数?(50分)

  • 主题发起人 主题发起人 陈新龙
  • 开始时间 开始时间
短的用sleep(毫秒),要不就自己写一个。已答问题里有好几个!
 
参看已答问题:等待时间的函数或计数器使用
(99-5-12)
 
sleep函数是个阻塞函数,不阻塞的函数(延迟n秒)可以这样实现:
procedure mydelay(n:integer);
var begin
_time,end_time:integer;
begin
begin
_time:=gettickcount;
end_time:=gettickcount;
while ((end_time-begin
_time) div 1000) < n do
begin
Application.ProcessMessages;
end_time:=gettickcount;
end;
end;

以上函数未经过编译测试。
 
liukeen说得很对,用sleep会使系统失去响应,鼠标变成沙漏状,所以最好用
gettickcount的方法gettickcount是取得自windows开机以来的时钟数
给分吧!!
 
呵呵,可以在线程中使用SLEEP就没有问题了:-)
 
估计就这几种方法了,赶紧把分来分给大家吧。
 
1.用Sleep函数.
2.用TTime控件.
^^^^^^
不知道你想干什么.
 
sleep可以满足一般要求了,不行就这样:
for i:=0 to 999do
begin
sleep(1);
application.processmessages;
end;
 
这些都是好办法,我无话可说的拉。
 
menxin的方法不能解决阻塞问题,
不知道他对他的程序测试了吗?
 
谢谢大家!
 
一有什么阻塞问题?
用gettickcount的特点是可以响应1毫秒以下的消息,如果你的应用不在1毫秒以下,
完全可以用sleep,我想我的那两行程序用不着测试!
 
sleep, sleepex, timer倥件,gettickcount,都可以一试么.
 
多人接受答案了。
 
后退
顶部