UpdateTimer sollte vor FOnTimer() aufgerufen werden, sonst verfälschen lange Laufzeiten der OnTimer-Methode die Genauigkeit.
Delphi-Quellcode:
UpdateTimer;
FOnTimer(Self);
Da Windows-PCs manchmal auch über mehrere Tage laufen, besser mit GetTickCount64() arbeiten.
http://www.delphipraxis.net/711170-post5.html