Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TDateTime bei über 24h abbruch (https://www.delphipraxis.net/4254-tdatetime-bei-ueber-24h-abbruch.html)

MrSpock 21. Apr 2003 20:21

Hallo Haegar,

das kann nicht sein, Frac liefert immer eine Real Zahl unter 1.00 zurück, damit liefert FormatDateTime nie einen Wert über 24:00! Poste bitte mal den Code mit dem Aufruf von Frac.

Haegar 21. Apr 2003 20:52

@spock: na es ist aber so das ich anfangen lasse mit laufen, irgendwann is stopp, und der wert wird in datei gespeichert.....wenn ich nun neu stoppe, lade ich den alten wert, und die zeit zählt weiter!!
so kommt man doch locker über 24h.

das is ja das problem!
gruss haegar

MrSpock 21. Apr 2003 21:16

Hallo Haegar,

das ist ja nicht der Punkt. Die Differenz, die du in der Variablen dauer speicherst, kann irgendeine Real Zahl sein, als Beispiel: 2.5 (das wären 2 Tage und 12 Stunden) wenn du aber Frac davor schreibst, kommt 0.5 raus. Frac liefert immer Ergebnisse, die kleiner als 1 sind, darum kann bei Anzeige von dauer, wenn du sie so berechnest wie ich beschrieben habe, nie mehr als 24:00 rauskommen. Poste doch bitte noch einmal deine Methode procedure TForm1.timerTimer(Sender: TObject), wie sie jetzt aussieht.

Haegar 21. Apr 2003 21:23

Zitat:

Zitat von Haegar
hab das bisher so gemacht!
Delphi-Quellcode:
procedure TForm1.timerTimer(Sender: TObject);
begin
 dauer:=Now-start+bisher;
 lbl_zeit.Caption:=FormatDateTime('t',dauer);
end;

//im FormCreate
ShortTimeFormat:='hh "h" nn "min" ss "s"';
gruss haegar

so sieht sie aus! :mrgreen:

gruss haegar

MrSpock 21. Apr 2003 21:27

Hallo Haegar,

damit es funktioniert, muss du es aber so machen:

Delphi-Quellcode:
procedure TForm1.timerTimer(Sender: TObject);
begin
  { Hier Frac einfügen }
  dauer := Frac(Now-start+bisher);
  lbl_zeit.Caption := FormatDateTime('t',dauer);
end;

Haegar 21. Apr 2003 21:37

ja hab ich ja, aber das problem ist, das er über 24h laufen muss. bis 99 oder so!!

gruss haegar

MrSpock 21. Apr 2003 21:41

Hallo Haegar,

ohhh sorry, da habe ich dich falsch verstanden, dann schau dir doch noch einmal die Lösung von Wolff68 an.

Haegar 21. Apr 2003 22:01

MyHoursBetween-funktion ist ihm nicht bekannt. aus welcher unit ist die??

gruss haegar

Daniel B 21. Apr 2003 22:07

Zitat:

Zitat von Haegar
MyHoursBetween-funktion ist ihm nicht bekannt. aus welcher unit ist die??

DateUtils, heisst aber nur HoursBetween.

Grüsse, Daniel :hi:

Haegar 21. Apr 2003 22:14

jetzt zählt er gar net mehr hoch (bleibt immer bei 0).
Delphi-Quellcode:
procedure TForm1.timerTimer(Sender: TObject);
begin
 dauer:=HoursBetween(Now,start);
 lbl_zeit.Caption:=FormatDateTime('t',dauer);
end;
gruss haegar


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.
Seite 2 von 3     12 3      

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