Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zeit in Label wiedergeben (https://www.delphipraxis.net/10649-zeit-label-wiedergeben.html)

hacker 22. Okt 2003 19:25


Zeit in Label wiedergeben
 
Guten Abend alerseits!

Ich hab da wieder mal eine Frage.Wie kann ich machen, das durch einen Timer, die Zeit in einem Label wiedergegeben wird?Etwa so: 00:00:00
(min : s : 1/100s)

Ich wäre froh, wenn mir da mal jemand ein Beispiel machen könnte.

Schon mal danke.


Gruss Häcki :hi:

RomanK 22. Okt 2003 19:34

Re: Zeit in Label wiedergeben
 
Hoi,
willst du die Systemzeit oder die vergangene Zeit angeben ???
Und wenn ich mich nicht irre hatten wir das schon ... suche mal in der CodeLibrary oder DP

Matze 22. Okt 2003 19:45

Re: Zeit in Label wiedergeben
 
Ich wollte dir das programmieren, aber ich schaff's nicht. :wall:

Keine Ahnug, wieso's nicht geht! Es ist dann auch noch so, dass statt 00 nur 0 dasteht, aber bei mir zählt es die Minuten hoch??

Delphi-Quellcode:
var Min, Sek, HundSek: Integer;

...

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Interval:=10;
  inc(HundSek);
  if HundSek mod 100 = 0 then
  begin
    HundSek:=0;
    inc(Sek);
  end;
  if Sek mod 60 = 0 then
  begin
    Sek:=0;
    inc(Min);
  end;
  Label1.Caption:=IntToStr(Min)+':'+IntToStr(Sek)+':'+IntToStr(HundSek);
end;
Weiß zufällig jemand, wieso das nicht geht? :gruebel:

Sorry, dass ich auch nicht helfen konnte. :oops:

Mirilin 22. Okt 2003 19:52

Re: Zeit in Label wiedergeben
 
:hi:

@Matze

Delphi-Quellcode:
procedure TForm1.TimerTimer(Sender: TObject);
begin
  inc(Hun);
  if Hun = 100 then
  begin
    Hun := 0;
    inc(Sek);
  end;
  if Sek = 60 then
  begin
    Sek := 0;
    inc(Min);
  end;
  LabelTime.Caption := IntToStr(Min)+':'+IntToStr(Sek)+':'+IntToStr(Hun);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer.Enabled := False;
  Timer.Interval := 100;
  Timer.Enabled := True;
end;
so klappts bei mir.

Edit : das ding läuft zu langsam, falsches Interval beim Timer, aber naja

CloudStrife 22. Okt 2003 20:01

Re: Zeit in Label wiedergeben
 
Wie beommt man das richtige Interval raus ??

MfG Cloud

Mirilin 22. Okt 2003 20:06

Re: Zeit in Label wiedergeben
 
Zitat:

Die Eigenschaft Interval gibt die Zeit in Millisekunden an, die verstreicht, bevor die Timer-Komponente das nächste Ereignis OnTimer initialisiert.
Du willst 1/100 folglich wäre es wohl Interval = 10.

Matze 22. Okt 2003 20:07

Re: Zeit in Label wiedergeben
 
Danke Tobi!

Bei mir geht's mit Interval 10!

RomanK 22. Okt 2003 20:12

Re: Zeit in Label wiedergeben
 
Das ist aber ungenau ... der Timer schafft nicht genau ...
Such mal im Forum nach Hier im Forum suchenGetTickCount
Da sollte einiges kommen..

Mirilin 22. Okt 2003 20:16

Re: Zeit in Label wiedergeben
 
Delphi-Quellcode:
...
Start : TTime;
...
procedure TForm1.TimerTimer(Sender: TObject);
begin
  LabelTime.Caption := FormatDateTime('nn"::"ss"::"zzz',Now-Start);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Start := Now;
end;

Würde auch gehen, ob genau, weiss ich nicht.

RomanK 22. Okt 2003 20:29

Re: Zeit in Label wiedergeben
 
Hoi,
ich habs mal mit GetTickCount versucht:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
milsek,tdiv: cardinal;
begin
milsek := GetTickCount;
tdiv := milsek-starttime;
if tdiv >= 1000 then
begin
inc(sek);
starttime := starttime + 1000;
end;
if sek >= 60 then
begin
sek := 0;
inc(min);
end;
label1.Caption := inttostr(min)+':'+inttostr(sek)+':'+inttostr(tdiv);
end;
Am Anfang muss starttime "gesetzt" werden, natürlich auch mit GetTickCount.
Und die drei anderen Vars noch global definieren:
Delphi-Quellcode:
var
min,sek,starttime : Cardinal;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz