Hallo an alle,
ich bin gerade dabei mir eine Stoppuhr zu programmieren. Die läuft bis jetzt auch ganz wunderbar. Als zusätzliches Feature hatte ich nun geplant, dass man eine Durchschnittszeit ausrechnen lassen kann. Dabei möchte ich aus 10 Durchläufen den Durchschnitt ermitteln. Meine Überlegung war jetzt, dass man im Falle einer Aktivierung (z.b. über eine Checkbox) der Option "Durchschnitt ermitteln" damit beginnt zehn Variablen mit den entsprechenden Werten zu füllen. Diese Werte sollen dann durch die Anzahl der bereits gefüllten Variablen geteilt werden... Soweit denk ich absolut logisch?
Ich geb euch hier jetzt erstmal den Code, mit dem ich die Zeit stoppe:
Delphi-Quellcode:
procedure TForm1.StartClock;
begin
ClockStarted := True;
TimeStarted := GetTickCount;
repeat
TimeElapsed := GetTickCount-TimeStarted;
Label1.Caption := TicksToTime(TimeStopped+TimeElapsed);
application.ProcessMessages; // damit sich das Programm nicht "aufhängt"
if application.Terminated then // Falls die Anwendung inzwischen beendet wurde
exit;
sleep(1); // 100% CPU-Auslastung vermeiden
until not ClockStarted;
end;
procedure TForm1.StoppClock;
begin
ClockStarted := False;
TimeStopped := getTickcount-TimeStarted + TimeStopped;
Label1.Caption := TicksToTime(TimeStopped);
end;
function TicksToTime(TickCount: cardinal): string;
begin
result := Format('%.2d:%.2d:%.2d',
[TickCount div 1000 div 60, // Minuten
TickCount div 1000 mod 60, // Sekunden
TickCount mod 1000 div 10]); // Hundertstel
end;
Wie ihr seht, fülle ich in dem Fall noch keine Variable um die gestoppte Zeit anzuzeigen, sondern lasse es einfach nur ein einem Label anzeigen. Mein Problem ist nämlich, dass ich nicht sicher bin, welche Art von Variable ich am besten nehme.. Falls jemand lust hat ein wenig zu coden, dann freue ich mich über fertige Codezeilen
Hab mit der SuchFunktion leider keine entsprechenden Ergebnisse gefunden
Mit besten Grüßen