Задержка или пауза в Delphi, но не sleep
Использовать sleep для создания паузы – это канонично, но не кошерно и очень неудобно. В сети можно встретить разные решения паузы, однако лучший вариант – сделать паузу при помощи компонента TTimer. При этом не будет заморозки формы и процесса, в котором вызывается пауза, т.к этот компонент реализует отдельный поток. Кидаем компонент TTimer на форму.
Вызываем паузу так:
Timer1.Interval:=5000; // устанавливаем паузу в мс Timer1.Enabled:=True;// включаем таймер while Timer1.Enabled do // пока таймер включен, держим паузу begin Application.ProcessMessages; end; |
В обработчике Timer1Timer одна строчка, отключающая таймер после истечения паузы.
procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Enabled:=False; end; |