Hallo Leute,
Habe mich mal umgeschaut, aber ich finde in meinem Delphi-Buch, bei Google, Wikipedia und in diesem Forum keine direkte Definition/Erklärung von QueryPerformance-Funktionen.
Ich lerne erst sein ein paar Monaten Delphi und basteln schon an einem Minigolfprogramm für meine Prüfung. Nach anger Zeit und viel Hilfe in diesem Forum, hab ich fast alles bei einander und muss das ganze nur noch zu einem vollen Programm stricken

Leider ist ein wichtiger Teil meines Programmes für mich unverständlich, da es mir jemand geschickt hat und ich es nicht selber gemacht habe.
Ein Teil der unverständlichen Prozeduren/Funktionen ist folgende, die die vergangene Zeit liest und für die nächste Bewegegung der Kugel gebraucht wird ( -> Timebased Movements ):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TMainForm.FormCreate(Sender: TObject); var begin if not [b]QueryPerformanceFrequency(Frequency)[/b] then Application.Terminate; [b]QueryPerformanceCounter(CalcTime);[/b] . . . end;
procedure TMainForm.CalcTimestep; var CurrTime: int64; begin [b]QueryPerformanceCounter(CurrTime);[/b] Timestep := (CurrTime - CalcTime) / Frequency; CalcTime := CurrTime; end;
procedure TMainForm.IdleHandler(Sender: TObject; var Done: Boolean); begin CalcTimestep; . . . end; |
Was mir auch schon aufgefallen ist, dass die Prozedur "CalcTimestep" selber die vergangene Zeit vom Programmstart("Form.Create") aus berechnet. Aber welche Zeit liest er mit der Funktion QueryPerformanceCounter. Die Zeit vom Programmstart/Pcstart an diesem Zeitpunkt?
Und als zweites verstehe ich nicht, was "QueryPerformaceFrequenz()" anstellt - Was ist hier direkt gemeint mit Frequenz?
Freundliche Grüße, Thomas alias beast
