Thema: Delphi TStopwatch

Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.025 Beiträge
 
Delphi 12 Athens
 
#8

AW: TStopwatch

  Alt 14. Aug 2015, 21:57
Das mit dem Record war mir schon klar, deswegen ja auch mein entsprechendes Beispiel
Könnt ihr denn das gleiche Verhalten feststellen oder funktioniert das bei euch?
Das kann nicht funktionieren! In der Implementation von TStopWatch.Create wird result.Reset aufgerufen. In deinem Beispiel wird der Result aber verworfen.
Da Create eine Klassenfunktion ist, kann sie auch gar keine Auswirkungen auf deine Instanz haben, da bei einer (statischen) Klassenfunktion kein Self mitgegeben wird. Das Verhalten ist somit nicht nur nachvollziehbar, sondern auch konsistent und so gewollt.

Folgende Verfahren funktionieren aber:
Delphi-Quellcode:
  
  aMessungGes.Create;
  aMessungGes.Reset;
  aMessungGes.Start;
  ...

  aMessungGes := TStopWatch.Create;
  aMessungGes.Start;
  ...

  aMessungGes := TStopWatch.StartNew;
  ...
Das Create im ersten Teil ist sogar (mindestens einmal) notwendig, damit die Klassenfelder initialisiert werden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat