一、掛起,不佔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;