- /挂起,不占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;
- //其中的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<MaxWaitTime) do
- begin
- SleepEx(100,False);
- Inc(WaitedTime,100);
- Application.ProcessMessages ;
- end
- end;
delphi延时 4种方法
最新推荐文章于 2024-07-25 13:23:47 发布