1、挂起,不占CPU
sleep
2、不挂起,占cpu
procedure Delay(msecs:integer);
var
FirstTickCount:longint;
begin
FirstTickCount:=GetTickCount;
repeat
Application.ProcessMessages;
until ((GetTickCount-FirstTickCount) >= Longint(msecs));
end;
3、定时器
procedure timerfun(handle:Thandle;msg:word;identer:word;dwtime:longword);stdcall;
begin
showmessage('到点了');
killtimer(handle,identer);//关闭定时器
end;//其中的identer是定时器的句柄
procedure TForm1.Button1Click(Sender: TObject);
var
identer:integer;
begin
identer:=settimer(0,0,2000,@timerfun);
if identer=0 then exit; //定时器没有创建成功。
end;
4、不占CPU不挂起
function TForm1.HaveSigned(MaxWaitTime: Cardinal): Boolean;
var I:Integer;
var WaitedTime:Cardinal;
begin
WaitedTime:=0;
while (WaitedTime<MaxWaitTime) do
begin
SleepEx(100,False);
Inc(WaitedTime,100);
Application.ProcessMessages ;
end
Delphi中进行延时的4种方法
最新推荐文章于 2024-11-03 13:15:27 发布
本文介绍了四种不同的延时方法:挂起(不占用CPU)、不挂起(占用CPU)、使用定时器以及不占CPU不挂起的方法。每种方法都通过具体的Delphi代码示例进行了说明,有助于理解不同场景下如何选择合适的延时策略。
1875

被折叠的 条评论
为什么被折叠?



