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;
end;

 

 posted on 2017-03-09 09:11  宝兰  阅读(159)  评论(0编辑  收藏  举报