Задержка или пауза в 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;

Вам понравиться

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *