Wozu wird denn ein Timer überhaupt benötigt?
Wenn ich wissen möchte, wieviel Zeit vergangen ist zwischen dem Zeitpunkt x und y, dann berechne ich das einfach. Dazu benötige ich keinen Timer und zum Zeitpunkt der Abfrage ist der Wert zuverlässig genau.
Delphi-Quellcode:
TStopWatch = record
private
FStartedAt, FStoppedAt: TDateTime;
FIsStarted: Boolean;
public
procedure Start;
procedure Stop;
function ElapsedTime : Double;
end;
procedure TStopWatch.Start;
begin
FStartedAt := Now();
FIsStarted := true;
end;
procedure TStopWatch.Stop;
begin
FStoppedAt := Now();
FIsRunning := False;
end;
function TStopWatch.ElapsedTime: Double;
begin
if FIsRunning then
Result := Now() - FStartedAt
else
Result := FStoppedAt - FStartedAt;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)