Альтернатива для Sleep(), но чтобы приложение не зависало

Альтернатива для 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;

Автор: jack128
Взято из http://forum.sources.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...