Zitat von
jaenicke:
Ein Timer wird ggf. ein paar Sekunden nicht ausgeführt, das ändert aber an der Genauigkeit deiner Differenzberechnung ja nichts. Soll der Timer auch unabhängig von der Oberfläche weiterlaufen, dann bleibt nur ein Thread, aber ich sehe darin keinen Sinn.
Die Differenz kannst du einfach mit MinutesBetween etc, aus der
Unit DateUtils berechnen.
mhm ... Also die Funktionen sind nicht schlecht ... aber müsst ich dann nicht auch ...
- HoursBetween()
- MinutesBetween()
- SecondsBetween()
ausführen?
Wie gesagt ich brauch die Stunden, Minuten und Sekunden.
MinutesBetween liefert ja nur die Anzahl der Minuten ^^
Außerdem hab ich dann für die Anzeige n Problem ... wenn ichs so mache ...
Delphi-Quellcode:
procedure TfrmMain.timElapsedTimeTimer(Sender: TObject);
begin
(*
Autor: Sascha Katzenberger
Datum: 2009-06-08
Beschreibung:
Während der Timer läuft, sollen die Stunden, Minuten und Sekunden
seit Anrufbeginn ermittelt werden. Da nur ein Anruf gleichzeitig
im State "Connect" ist, wird jeweils auch nur der aktuelle Anruf
bearbeitet. Entsprechendes Execptionhandling ist also nicht notwendig.
*)
// Stunden seit ...
frmCallMonitor.lblElapsedTime_Hours.Caption := IntToStr(HoursBetween(CallStartTime, Now));
// Minuten seit ...
frmCallMonitor.lblElapsedTime_Minutes.Caption := IntToStr(MinutesBetween(CallStartTime, Now));
// Sekunden seit ...
frmCallMonitor.lblElapsedTime_Seconds.Caption := IntToStr(SecondsBetween(CallStartTime, Now));
end;
Wenn Sekunden > 59 springts natürlich nicht mehr auf 0 zurück ...
Aber danke für deine Hilfe ... werd halt noch basteln dass ich die Werte überprüfe und dann erst anzeigen lasse