Einzelnen Beitrag anzeigen

samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#29

AW: GetTickCount / Fehler bei Bereichsprüfung

  Alt 16. Jan 2014, 11:31
Und das hier funktioniert nicht?
Delphi-Quellcode:
Function ElapsedTicks (previousTicks : Cardinal) : Cardinal;
Var
   currentTicks : Cardinal;

Begin
   currentTicks := GetTickCount();
   if currentTicks < previousTicks then
     result := High(Cardinal) - previousTicks + currentTicks + 1
   else
     result := currentTicks - previousTicks
end;



Var
  start : Cardinal;
...
begin
  start := GetTickCount;
  SomeOperation();
  Writeln('Tics elapsed:',ElapsedTicks(start));
Wenn man die Überlaufprüfung ausschaltet dann ist
result := High(Cardinal) - previousTicks + currentTicks + 1
equivalent zu
result := High(Cardinal) + 1 - previousTicks + currentTicks
equivalent zu
result := 0 - previousTicks + currentTicks
equivalent zu
result := currentTicks - previousTicks.
Die Fallunterscheidung ist dann also unnötig.
  Mit Zitat antworten Zitat