Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Секундомер


Автор: proger 22.10.2004, 18:07
Как в дельфи сделать сикундомер, который выводит в формате Часы:Мин:Сек т.е. 00:00:48 :sample

Автор: p0s0l 22.10.2004, 18:59
Самое простое - с помощью таймера.
Ставишь на форму таймер:
Interval = 1000
Enabled = False
Вытаскиваешь Label куда-нибудь, на этом лабеле будет выводиться время...

На собитие таймера OnTimer пишешь:
Код

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if Timer1.Tag > 0 then
 begin
   Timer1.Tag := Timer1.Tag - 1;
   Label1.Caption := TimeToStr(Timer1.Tag / SecsPerDay);
 end;

// Если отсчёт окончен...
 if Timer1.Tag = 0 then
 begin
   Timer1.Enabled := False;
   PlaySound(PChar(SND_ALIAS_SYSTEMASTERISK), 0, SND_ASYNC or SND_ALIAS_ID);
   ShowMessage ('Отсчёт окончен!');
 end;
end;


При нажатии на какую-нибудь кнопку пишешь запуск секундомера:
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
 Timer1.Tag := 190; // количество отсчитываемых секунд, в данном случае, 3  минуты 10 сек
 Timer1.Enabled := True;
end;

Добавлено @ 19:02
Тьфу! :) Я вдруг подумал, что надо без обратного отсчёта...
Тогда событие таймера перепиши так:
Код

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 Timer1.Tag := Timer1.Tag + 1;
 Label1.Caption := TimeToStr(Timer1.Tag / SecsPerDay);
end;


Автор: proger 23.10.2004, 11:23
p0s0l Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)