分享

delphi中有没有延时的函数? - Delphi / VCL组件开发及应用

 chantw172 2010-12-15
Delphi中三种延时方法及其定时精度分析           选择自   listenwind   的   Blog    
关键字       Delphi中三种延时方法及其定时精度分析  
出处        
 
    在Delphi中,通常可以用以下三种方法来实现程序的延时,即TTtimer控件,Sleep函数,GetTickCount函数。但是其精度是各不相同的。

一、三种方法的简单介绍

1)TTtimer控件

  TTtimer控件的实质是调用Windows   API定时函数SetTimer和KillTimer来实现的,并简化了对WM_TIMER   消息的处理过程。通过设置OnTimer事件和Interval属性,我们可以很方便的产生一些简单的定时事件。

2)Sleep函数

  Sleep函数用来使程序的执行延时给定的时间值。Sleep的调用形式为Sleep(milliseconds),暂停当前的进程milliseconds毫秒。Sleep的实现方法其实也是调用Windows   API的Sleep函数。例如:

sleep(1000);                 //延迟1000毫秒

Sleep会引起程序停滞,如果你延迟的时间较长的话,你的程序将不能够响应延时期间的发生的其他消息,所以程序看起来好像暂时死机。

3)GetTickCount函数

  在主程序中延时,为了达到延时和响应消息这两个目的,GetTickCount()构成的循环就是一种广为流传的方法。例如:

procedure   Delay(MSecs:   Longint);
//延时函数,MSecs单位为毫秒(千分之1秒)
var
    FirstTickCount,   Now:   Longint;
begin
    FirstTickCount   :=   GetTickCount();
    repeat
        Application.ProcessMessages;
        Now   :=   GetTickCount();
    until   (Now   -   FirstTickCount   > =   MSecs)   or   (Now   <   FirstTickCount);
end;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多