На рис. 1.17 приведена
форма и окна программы во время установки интервала и в
процессе отсчета времени.



Рис. 1.17. Форма и окна программы Таймер implementation

($R *.dfm}

{ Во время создания формы свойству Visible компонента
Label3 надо присвоить значение False )
var
// интервал
rain: integer; // минут
sec: integer; // секунд

// в заголовок окна программы
// выводится, сколько времени осталось
procedure ShowTime;
var
buf: string[20];
begin
// минуты и секунды выводим двумя цифрами
if min < 10 then
buf := '0' + IntToStr(min) + ':'
else ,
buf := IntToStr(min) + ':';

if sec < 10 then
buf := buf + '0' + IntToStr(sec)
else
buf := buf + IntToStr(sec);

Forml.Label3.Caption := buf;
end;

// сигнал от таймера
procedure TForml.TimerlTimer(Sender: TObject);
begin
sec := sec — 1;
ShowTime; // показать, сколько времени осталось
if (min = 0) and (sec = 0) then
// заданный интервал истек
begin
Timerl.Enabled := False; // стоп
ShowMessage('Заданный интервал истек!');
Buttonl.Caption := 'Пуск';
Label3.Visible := False; // скрыть индикацию времени
// сделать видимыми поля ввода интервала
Labell.Visible := True;
Editl.Visible := True;
Label2.Visible := True;
Edit2.Visible := True;
exit;
end;

if (sec = 0) and (min > 0) then
begin
sec : = 60;
min := min — 1;
end;

end;

// щелчок на кнопке Пуск/Стоп
procedure TForml.Buttoniciick(Sender: TObject);
begin
if Forml.Timer1.Enabled then
// таймер работает, надо остановить
begin
Timer1.Enabled := False; // стоп
Buttonl.Caption := 'Пуск';
Label3.Visible := False; // скрыть индикацию времени
// сделать видимыми поля ввода интервала
Labell.Visible := True;
Editl.Visible := True;
Label2.Visible := True;
Edit2.Visible := True;
end

else
// таймер стоит, надо запустить
begin
min := StrToInt(Editl.Text);
sec := StrToInt(Edit2.Text);
if (sec = 0) and (min = 0) then
begin
ShowMessage('Надо задать интервал!');
exit;
end;
Timerl.Enabled
// скрыть поля ввода интервала
Label1.Visible
Editl.Visible
Label2.Visible
Edit2.Visible
Label3.Visible
= True; // запустить таймер
= False;
= False;
= False;
= False;
= True;
Buttonl.Caption := 'Стоп';
ShowTime;
end;
end;