Часто требуется организовать задержку в выполнении кода, но что бы при этому приложение не зависало, могло реагировать на сообщения Windows, в часности могло перерисовываться..

Code:

procedure Delay(ATimeout: Integer);

{©Drkb v.3}

 

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

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить