Альтернатива для Sleep(), но чтобы приложение не зависало
Falk0ner, вс, 06/07/2008 - 15:34.
Автор: jack128
Взято из http://forum.sources.ru
Альтернатива для Sleep(), но чтобы приложение не зависало
Часто требуется организовать задержку в выполнении кода, но что бы при этому приложение не зависало, могло реагировать на сообщения Windows, в часности могло перерисовываться..
procedure Delay(ATimeout: Integer);
{©Drkb v.3(2007): www.drkb.ru}
var
t: Cardinal;
begin
while ATimeout > 0 do
begin
t := GetTickCount;
if MsgWaitForMultipleObjects(0, nil^, False, ATimeOut, QS_ALLINPUT) = WAIT_TIMEOUT then
Exit;
Application.ProcessMessages; // Пришли новые сообщения Windwos , обрабатываем их..
dec(ATimeout, GetTickCount - t);
end;
end;
{©Drkb v.3(2007): www.drkb.ru}
var
t: Cardinal;
begin
while ATimeout > 0 do
begin
t := GetTickCount;
if MsgWaitForMultipleObjects(0, nil^, False, ATimeOut, QS_ALLINPUT) = WAIT_TIMEOUT then
Exit;
Application.ProcessMessages; // Пришли новые сообщения Windwos , обрабатываем их..
dec(ATimeout, GetTickCount - t);
end;
end;
Автор: jack128
Взято из http://forum.sources.ru
Отправить комментарий