Вот пример использования цикла, который проверяет время и вызывает Application.ProcessMessages, чтобы разрешить сообщения Windows, которые будут выполняться в течение цикла.
procedure Delay(ms : longint);
var
TheTime : LongInt;
begin
TheTime := GetTickCount + ms;
while GetTickCount < TheTime do
Application.ProcessMessages;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Start Test');
Delay(2000);
ShowMessage('End Test');
end;
Еще один пример:
procedure lcDelay(const sec, msec: word);
var
TimeOut: TDateTime;
begin
TimeOut := Now + EncodeTime(0, sec div 60, sec mod 60, msec);
While Now < TimeOut do
Application.ProcessMessages;
end;
Комментарии