zoukankan      html  css  js  c++  java
  • [转]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<MaxWaitTime)   do
              begin
                      SleepEx(100,False);
                      Inc(WaitedTime,100);
                      Application.ProcessMessages ;
              end
    end;
  • 相关阅读:
    《大道至简》读后有感
    关于jQuery放置位置的问题01
    javascript基础
    层叠样式表与css3基础
    经典sql语句
    java开发中的23种设计模式
    struts2漏洞以及测试
    离开贴吧大概会写下博客吧
    Set介绍
    小知识点
  • 原文地址:https://www.cnblogs.com/go-jzg/p/4190853.html
Copyright © 2011-2022 走看看