Timer/Stoper

0

Witam !
Czy moglby mi ktos pomoc napisac Timer/Stoper. Dokladnie chodzi mi o to, ze znalazlem juz stoper (http://4programmers.net/Forum/viewpost.php?id=134740&h=stoper) a chcialbym, aby mozna bylo zrobic z niego timer w ten sposob: podajesz czas jaki ma odliczac timer w dol. Np. 0056 i on liczy to w dol az do zera, moglby nawet przy ostatnich 5 minutach czcionka zmieniac kolor, ale z tym sobie sam poradze. (ale namiszalem :P).
Z gory dzieki.
Pozdrawiam

0

A taki duży Interval da się wstawić? Jeżeli tak to nie ma problemu

0

ja robiłem tak:
najpierw zliczyłem sobie ile sekund mam do odoliczenia, potem w timerku (Interval:=1000) odejmowałem od liczby sekund po jednej sekundzie i uaktualniałem wyświetlany czas. z wyświetlaniem czasu powinieneś sobie poradzić:

// poszczególne cyfry przygotowane do wyświetlenia
minuty := floor(pozostale_sekundy / 60);
godziny := floor(minuty / 60);
sekundy := pozostale_sekundy - (minuty * 60);

// wyświetlenie czasu w labelu
label1.caption := IntToStr(godziny) + ':' + IntToStr(minuty) + ':' + IntToStr(sekundy);
0

procedurka z mojego programiku, pozmieniaj według potrzeb. pisałem to trochę dawno więc kod nie jest szczególnie błyskotliwy.

procedure TFTest.Timer1Timer(Sender: TObject);
var gs,ms,ss : String;
begin
  If Length(IntToStr(g))=1 then gs:='0'+IntToStr(g) else gs:=IntToStr(g);
  If Length(IntToStr(m))=1 then ms:='0'+IntToStr(m) else ms:=IntToStr(m);
  If Length(IntToStr(s))=1 then ss:='0'+IntToStr(s) else ss:=IntToStr(s);
  if (s=0) and (m=0) and (g=0) then
    begin
      Timer1.Enabled:=False;     
      cz_minal;     
      GBStart.Align:=alClient;
    end;
  if s<>99 then
    begin
      Lczas.Caption:=Format('%s:%s:%s',[gs,ms,ss]);
       s:=s-1;
       if s<0 then
         begin
           s:=59;
           m:=m-1;
         end;
       if m<0 then
         begin
           m:=59;
           g:=g-1;
         end;
    end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1