Delphi中进行延时的4种方法

 一、挂起,不占CPU
sleep
二、不挂起,占cpu
procedure Delay(msecs:integer);
var
FirstTickCount:longint;
begin
FirstTickCount:=GetTickCount;
repeat
Application.ProcessMessages;
until ((GetTickCount-FirstTickCount) >= Longint(msecs));
end;
三、定时器
procedure timerfun(handle:Thandle;msg:word;identer:word;dwtime:longword);stdcall;
begin
showmessage('到点了');
killtimer(handle,identer);//关闭定时器
end;ide

//其中的identer是定时器的句柄
procedure TForm1.Button1Click(Sender: TObject);
var
identer:integer;
begin
   identer:=settimer(0,0,2000,@timerfun);
   if identer=0 then exit; //定时器没有建立成功。
end;
四、不占CPU不挂起 function TForm1.HaveSigned(MaxWaitTime: Cardinal): Boolean; var   I:Integer; var   WaitedTime:Cardinal; begin           WaitedTime:=0;           while      (WaitedTime           begin                   SleepEx(100,False);                   Inc(WaitedTime,100);                   Application.ProcessMessages ;           end end;
相关文章
相关标签/搜索