procedure TForm1.Timer2Timer(Sender: TObject);
var ms, sec, min, h: integer;
hh, mm, ss: string;
begin
inc(r);
ms :=r mod 60;
sec := r div 60;
min := sec mod 60;
h := min div 60;
if ms < 10 then ss := '0' + IntToStr(ms)
else ss := IntToStr(ms);
if min < 10 then mm:='0' + IntToStr(min)
else mm := IntToStr(min);
if h < 10 then hh := '0' + IntToStr(h)
else hh := IntToStr(h);
label2.Caption := hh + ':' + mm + ':' + ss;
end;
Алгоритм обратного отсчёта
У меня есть алгоритм секундомера. Можно отталкиваться от него.
Код:
Надеюсь на Вашу помощь! Заранее благодарен.
И начинать помойму с часов надо.
Код:
h = r div (60 * 60 * 1000)
r = r mod (60 * 60 * 1000)
min = r div (60 * 1000)
r = r mod (60 * 1000)
sec = r div 1000
ms = r mod 1000
r = r mod (60 * 60 * 1000)
min = r div (60 * 1000)
r = r mod (60 * 1000)
sec = r div 1000
ms = r mod 1000
Только проверь, ато я без компилера тут пишу.
Цитата: sherry
что-то затормозил на алгоритме обратного отсчёта.
Код:
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
C4Time, Tick: TDateTime;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
C4Time := EncodeTime(0, 0, 35, 0);
Tick := EncodeTime(0, 0, Timer1.Interval div 1000, 0);
Label1.Caption := TimeToStr(C4Time);
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
C4Time := C4Time - Tick;
if C4Time >= Tick then
begin
Label1.Caption := TimeToStr(C4Time);
Beep;
end
else
begin
Label1.Caption := 'Terrorists win';
Timer1.Enabled := False;
end;
end;
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
C4Time, Tick: TDateTime;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
C4Time := EncodeTime(0, 0, 35, 0);
Tick := EncodeTime(0, 0, Timer1.Interval div 1000, 0);
Label1.Caption := TimeToStr(C4Time);
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
C4Time := C4Time - Tick;
if C4Time >= Tick then
begin
Label1.Caption := TimeToStr(C4Time);
Beep;
end
else
begin
Label1.Caption := 'Terrorists win';
Timer1.Enabled := False;
end;
end;