Thema: Delphi Zeitmesser

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Zeitmesser

  Alt 17. Jan 2009, 17:41
Zitat von fkerber:
Hi!

Ich wäre mir aber nicht so sicher, ob das so genau funktioniert. Ich denke nämlich nicht unbedingt, dass der Timer genau im Takt 1000ms aufgerufen wird - bspw. nicht, wenn der Rechner mal gerade voll ausgelastet wird o.ä.

Ich würde zwar auch einen Timer mit Takt 1000ms nutzen, allerdings dann nicht einen Counter erhöhen, sondern die aktuelle Zeit auslesen und dann die Zeit beim Öffnen irgendwo gespeichert haben und dann die Differenz ordentlich formatiert ausgeben.


Ciao, Frederic
Das denke ich auch. Dazu mal ein Beispiel aus dem Kopf getippt (keine Garantie):
Delphi-Quellcode:
type
  TMyForm = class(TForm)
    MyTimer: TTimer;
    MyLabel: TLabel;
    ...
    procedure FormCreate(Sender: TObject);
  private
    FStart: TDateTime;
    ...
  end;

...

uses DateUtils;
...

procedure TMyForm.FormCreate(Sender: TObject);
begin
  FStart := now; //Startzeit merken
end;

procedure TMyForm.MyTimerTimer(Sender: TObject);
const SecsPerMinute = 60;
      SecsPerHour = SecsPerMinute * 60;
var dwSecDiff: Cardinal;
begin
  dwSecDiff := DateUtils.SecondsBetween(now,FStart); //Zeitdifferenz in Sekunden
  MyLabel.Caption := Format('%.2d Stunden, %.2d Minuten, %.2d Sekunden',
                            [dwSecDiff div SecsPerHour,
                             dwSecDiff mod SecsPerHour div SecsPerMinute,
                             dwSecDiff mod SecsPerMinute]);
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat