admin

[系统应用] Delphi 延迟函数 比sleep 要好的多

procedure delay(msecs:integer);

var

  Tick: DWord; 

  Event: THandle; 

begin

  Event := CreateEvent(nil, False, False, nil); 

  try

    Tick := GetTickCount + DWord(msecs); 

    while (msecs > 0) and (MsgWaitForMultipleObjects(1, Event, False, msecs, QS_ALLINPUT) <> WAIT_TIMEOUT) do

    begin

      Application.ProcessMessages; 

      msecs := Tick - GetTickcount; 

    end; 

  finally

    CloseHandle(Event); 

end; 

 

//延迟函数:方法二

procedure Delay(dwMilliseconds:DWORD);//Longint

var

iStart,iStop:DWORD;

begin

    iStart :=   GetTickCount;

    repeat

    iStop  :=   GetTickCount;

    Application.ProcessMessages;

    until (iStop  -  iStart) >= dwMilliseconds;

end;


#1楼
发帖时间:2月前   |   查看数:0   |   回复数:0
游客组