Консультация № 28236
24.10.2005, 17:43
0.00 руб.
0 6 6
Здравствуйте, уважаемые эксперты.
Столкнулся с проблемой: нужно сделать паузу в программе (задержку как раньше было delay ). Не могу найти как ее сделать в Delphi. Подскажите.
Спасибо за ответы.

Обсуждение

Неизвестный
24.10.2005, 17:53
общий
это ответ
Здравствуйте, Lichkaty Alexander!
Sleep(N); //делает паузу
где N - кол-во миллисекунд
давно
Мастер-Эксперт
425
4118
24.10.2005, 17:55
общий
это ответ
Здравствуйте, Lichkaty Alexander!
Функция Sleep(Millisec) замораживает текущий поток на указаное кол-во милисекунд.
Можно из текущего потока приостановить другой поток - SuspendThread(Handle). Это бывает полезно, когда только часть программа, какого-либо процесса, должна быть приостановлена.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
24.10.2005, 18:08
общий
это ответ
Здравствуйте, Lichkaty Alexander!
Вместо delay используйте Sleep(MilliSeconds) и всё заработает :)
Неизвестный
24.10.2005, 19:15
общий
это ответ
Здравствуйте, Lichkaty Alexander!
Вот так например:
<font color=#0066CC><b>Sleep(1500);
Application.ProcessMessages;</b></font>

Но учтите, что в течение этих полтора секунд программа вообще станет мёртвой, т.е. не будет реагировать ни на что - ни на клавиатуру, ни на мышь и т.д. Если хотите, чтобы этого не происходило, можно попробовать делать в цикле несколько задержек, которые в сумме дадут требуемую задержку. В данном примере - можно сделать 5 задержек по 300 миллисекунд.
Неизвестный
24.10.2005, 22:44
общий
это ответ
Здравствуйте, Lichkaty Alexander!
Попробуйте функцию Windows API Sleep(Msec), где Msec - целое число в миллисекундах. Выполняет остановку текущего потока на указанное кол-во миллисекунд.
Неизвестный
26.10.2005, 06:34
общий
это ответ
Здравствуйте, Lichkaty Alexander!

Воспользуйтесь процедурой Sleep();
или таймером.
Форма ответа