Delphi中三种延时方法
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;
總結
以上是生活随笔為你收集整理的Delphi中三种延时方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑客城堡与玫瑰谷
- 下一篇: DELPHI 读取TXT文件unicod