Forum: Object-Pascal / Delphi-Language
Delphi
by MrSpock,
22. Apr 2003
Hallo Haegar,
Wolff68 hat in seinem Posting oben die Funktion MyHoursBetween selbst geschrieben. Außerdem muss du dann auch wie Wolff68 gezeigt hat die Ausgabe erzeugen. Er setzt die Ausgabe aus den Stunden, die er mit MyHoursBetween berechnet und den Minuten und Sekunden zusammen.
Forum: Object-Pascal / Delphi-Language
Delphi
by MrSpock,
21. Apr 2003
Hallo Haegar,
ohhh sorry, da habe ich dich falsch verstanden, dann schau dir doch noch einmal die Lösung von Wolff68 an.
Forum: Object-Pascal / Delphi-Language
Delphi
by MrSpock,
21. Apr 2003
Hallo Haegar,
damit es funktioniert, muss du es aber so machen:
procedure TForm1.timerTimer(Sender: TObject);
begin
{ Hier Frac einfügen }
dauer := Frac(Now-start+bisher);
lbl_zeit.Caption := FormatDateTime('t',dauer);
end;
Forum: Object-Pascal / Delphi-Language
Delphi
by MrSpock,
21. Apr 2003
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...
Forum: Object-Pascal / Delphi-Language
Delphi
by MrSpock,
21. Apr 2003
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.
Forum: Object-Pascal / Delphi-Language
Delphi
by MrSpock,
21. Apr 2003
Hallo Haegar,
du kannst es weiter wie bisher machen, wenn du wie oben gezeigt die Funktion Frac verwendest.
Forum: Object-Pascal / Delphi-Language
Delphi
by MrSpock,
21. Apr 2003
Hallo Haegar,
du ikannst entweder TimeToStr benutzen, eine Funktion, die immer nur Werte bis 24:00:00 ausgibt, oder um bei deinem Code zu bleiben. Wenn du nur den Teil nach dem Komma nutzt, erhälst du die Uhrzeit:
dauer:=Frac(Now-start+bisher);
Der Anteil vor dem Komma sind die ganten Tage, die du mit Frac einfach abschneidest.
Forum: Object-Pascal / Delphi-Language
Delphi
by MrSpock,
21. Apr 2003
Hallo Haegar,
ich denke da hat Delphi ja nicht ganz unrecht :mrgreen: : so 25:08 ist ja ein wenig komisch. Die Frage ist aber wie erzeugst du aus deinem TDateTime Wert diese Anzeige?
Der Wert selbst ist ja wie gesagt einfach eine Realzahl.
Forum: Object-Pascal / Delphi-Language
Delphi
by MrSpock,
21. Apr 2003
Hallo Haegar,
der Abbruch liegt sicher nicht an dem TDateTime Typ, der eine Reele Zahl ist. Der Abbruch muss woanders herkommen. Poste doch mal die Stelle rund um die "Fehlerzeile".