nochmal kurz zu
Zitat von
Macci:
(Nicht zu verwechseln mit dem Timer-Steuerelement von Delphi)
Code:
procedure TTimer.UpdateTimer;
begin
[b]KillTimer[/b](FWindowHandle, 1);
if (FInterval <> 0) and FEnabled and Assigned(FOnTimer) then
if [b]SetTimer[/b](FWindowHandle, 1, FInterval, nil) = 0 then
raise EOutOfResources.Create(SNoTimers);
end;
Ja und es wird nicht jede Sekunde das Event ausgelöst ... wenn dein Programm z.B. 10 Sekunden lang seine Nachrichten (Messages) nicht bearbeitet, dann sind nicht (wie man vielleicht denken könnte) auch 10 Timer-Nachrichten in der Liste, sondern nur eine.
Auserdem arbeitet Windows ja nicht genau und es kommt nicht aller "genau" 'ner Sekunde ein Ereignis rein (wenn windows oder ein Programm aus-/überlastet ist, dann kann es auch mal verspätet eintreffen)