delphi延时 4种方法

 
  1. /挂起,不占CPU
  2. sleep
  3. //不挂起,占cpu
  4. procedure Delay(msecs:integer);
  5. var
  6. FirstTickCount:longint;
  7. begin
  8. FirstTickCount:=GetTickCount;
  9. repeat
  10. Application.ProcessMessages;
  11. until ((GetTickCount-FirstTickCount) >= Longint(msecs));
  12. end;
  13. // 定时器
  14. procedure timerfun(handle:Thandle;msg:word;identer:word;dwtime:longword);stdcall;
  15. begin
  16. showmessage('到点了');
  17. killtimer(handle,identer);//关闭定时器
  18. end;
  19. //其中的identer是定时器的句柄
  20. procedure TForm1.Button1Click(Sender: TObject);
  21. var
  22. identer:integer;
  23. begin
  24.    identer:=settimer(0,0,2000,@timerfun);
  25.    if identer=0 then exit; //定时器没有创建成功。
  26. end;
  27. // 不占CPU不挂起
  28. function TForm1.HaveSigned(MaxWaitTime: Cardinal): Boolean;
  29. var   I:Integer;
  30. var   WaitedTime:Cardinal;
  31. begin
  32.           WaitedTime:=0;
  33.           while      (WaitedTime<MaxWaitTime)   do
  34.           begin
  35.                   SleepEx(100,False);
  36.                   Inc(WaitedTime,100);
  37.                   Application.ProcessMessages ;
  38.           end
  39. end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值