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;

posted @ 2014-05-30 22:34  Wishmeluck  阅读(510)  评论(0编辑  收藏  举报