Delphi 延时的4种方法


本文整理自网络,侵删。

 

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
                  begin
                          SleepEx(100,False);
                          Inc(WaitedTime,100);
                          Application.ProcessMessages ;
                  end
        end;

 

相关阅读 >>

Delphi整理三(窗体和基本组件)

winapi 字符及字符串函数(15): charnext、charprev

Delphi 遍历文件单元文件

Delphi 计算农历的单元

改写个Delphi 版 lz前辈的openprocess

Delphi获取程序所在目录

dekphi qq自动发消息源码

Delphi 系统服务状态获取管理员用户名

Delphi 屏蔽汉字,年月日,时间,银行卡正则表达式

Delphi tstringlist stringlist的特殊用法

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...