nun habe ich auch über einen längeren Zeitraum die Zeitdauer der Ausführung des Programmteils gemessen und stets den Wert 0 ms erhalten.
Nehmen wir mal Dein Beispiel mit einer Zeitdauer von angenommen 15 ms für die Programmausführung. Dann müsste also das Intervall auf 985 ms gesetzt werden, damit dann genau zur neuen sec. der neue Ablauf der Bestimmung der roem. Zahlen auf dem Turm neu beginnen kann? Sehe ich das so richtig?
Ich habe mit 2 Methoden die Messung vorgenommen und immer nur 0 ms erhalten. Somit kann ich also kein Intervall setzen oder? Anbei das Beispiel für die Messung mit einer der beiden Methoden:
Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject); //Messung Intervall
var
freq: Int64;
startTime: Int64;
endTime: Int64;
Present: TDateTime;
Year, Month, Day, Hour, Min, Sec, MSec: Word;
Zeit : String;
begin
timer2.Enabled:=false;
QueryPerformanceFrequency(freq);
QueryPerformanceCounter(startTime);
Present:= Now;
SysUtils.DecodeDate(Present, Year, Month, Day);
Label1.Caption := 'Der heutige Tag ist der ' + Dezinroem(IntToStr(Day)) + ' des '+Dezinroem(inttoStr(Month)) +'. Monates '
+ ' des Jahres ' + DezinRoem(IntToStr(Year));
SysUtils.DecodeTime(Present, Hour, Min, Sec, MSec);
Label2.Caption := DezInRoem(inttostr(Hour))+ ' Stunden, '+DezInRoem(inttostr(Min))+' Minuten und '
+DezinRoem(inttostr(Sec))+' Sekunden und '+DezinRoem(inttostr(MSec)) +' Milisekunden';
Label4.Caption:=DezInRoem(inttostr(Hour));
Label5.caption:=DezInRoem(inttostr(Min));
Label6.caption:=DezInRoem(inttostr(Sec));
Label7.caption:=DezInRoem(inttostr(mSec));
Zeit:=timeToStr(Time);
Panel1.Caption:=Zeit;
// Panel1.Caption:=TimeToStr(Time);
StatusBar1.Panels[0].Text:=TimeToStr(Time);
StatusBar1.Panels[1].Text:=FormatDateTime('"Heute ist "dddd," der "d.mmmm yyyy"',Date);
DecodeTime(Time, Hour, Min, Sec, mSec);
Trackbar1.Position:=Sec;
QueryPerformanceCounter(endTime);
timer2.Enabled:=true;
ShowMessage('Die Routine benötigte etwa ' + IntToStr((endTime - startTime) * 1000 div freq) + ' ms');
end;