TDateTime, TTime und TDate sind allesamt intern Double-Werte, bei denen der ganzzahlige Anteil zur Verschlüsselung des Datums und der Nachkomma-Anteil zur Verschlüsselung der Zeit verwendet wird. Deswegen erhältst du immer die Zeit 00:00:00 - 1000 und 999 sind eben ganze Zahlen. Zur Arbeit mit Zeit-/Datums-Werten solltest du die
Unit DateUtils verwenden:
Delphi-Quellcode:
//totaltime initialisieren
totaltime := IncSecond(0, 1000);
//1 Sekunde abziehen
totaltime := IncSecond(totaltime, -1);
Ich gehe einfach mal davon aus, dass du hier mit 1000 Sekunden arbeiten willst - sonst eben Millisekunden, Minuten oder Stunden verwenden.
Die Initialisierung von totaltime sollte natürlich außerhalb des OnTimer-Events geschehen.
Die Eigenschaft Interval eines TTimer gibt an, alle wieviel Millisekunden das OnTimer-Event ausgelöst wird, bei 1000 also jede Sekunde.