Uups ein ; ... da ist wohl beim Löschen doch was zurückgeblieben
Das Break stammt noch aus 'ner optimierteren Version - der Vergleich muß halt nicht unbedingt bei jedem Schleifendurchlauf gemacht werden, deshalb ist der halt dorthin verschoben, wo der sinnvoll ist.
Die Beep's ... naja, ist halt 'ne Eigenart von mir.
1. was "sinnvoll" zusammengehört, schreib ich eben so, dass es optisch auch zusammengehörig ist (und wenn's passt, kommt es eben hintereinander in eine Zeile).
2. bei Prozessen, welche länger dauern und wo es keine eindeutige Rückmeldung gibt, ob dieser schon fertig ist, da kommt eben an's Ende ein akustisches Signal.
Und was den sogenannten Styleguide angeht:
1. gibt es tausende davon, wo jeder irgendwie was anderes sagt.
2. sind das keine Befehle, sondern nur Hinweise, welche man beachten kann (wenn man will).
3. eignet sich halt jede(r) einen Style an, mit welchem er/sie eben am Besten zurechtkommt und ein bissl künstlerische Freiheit steht doch wohl jedem noch zu.
Das optimiertere Teil (es wurde halt nur einiges wegoptimiert):
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Var SystemTime: TSystemTime;
Milliseconds: Word;
A: Integer;
S: TTime;
Begin
GetLocalTime(SystemTime);
Milliseconds := SystemTime.wMilliseconds;
With SystemTime do S := EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
A := 0;
While True do Begin
GetLocalTime(SystemTime);
If SystemTime.wMilliseconds <> Milliseconds Then Begin
Milliseconds := SystemTime.wMilliseconds;
Inc(A);
If A = 1000 Then Break;
End;
End;
With SystemTime do
Edit1.Text := FloatToStr((EncodeTime(wHour, wMinute, wSecond, wMilliseconds) - S) * MSecsPerDay / A);
Beep; Sleep(250); Beep; Sleep(250); Beep;
End;