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.