@Popov
Nein, so ist es nicht ganz:
- Übergibst du ein Fenster-Handle, dann bist du für die Vergabe/Verwaltung der TimerID zuständig.
- Übergibst du kein Fenster-Handle, dann bekommst du eine TimerID zugewiesen.
Also wir übergeben ein
Handle und eine TimerID:
Delphi-Quellcode:
var
LTimerID: UINT_PTR;
begin
LTimerID := 1;
LTimerID := SetTimer( AHandle, LTimerID, 1000, @TimerProc );
end;
Nach Aufruf von
SetTimer
ist
LTimerID
immer noch 1.
Jetzt ohne
Handle:
Delphi-Quellcode:
var
LTimerID: UINT_PTR;
begin
LTimerID := 1;
LTimerID := SetTimer( 0, LTimerID, 1000, @TimerProc );
end;
Nach dem Aufruf von
SetTimer
bekommen wir eine völlig andere TimerID zurück - es sei denn, es gibt schon einen Timer mit der TimerID 1, dann wird dieser auf das neue Intervall gesetzt. Wenn wir Pech haben funken wir einem anderen Timer dazwischen. Darum soll man hier zwingend 0 übergeben, wenn man einen neuen Timer anlegen will und keinen vorhandenen ändern.
Das steht auch alles so in der Doku.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)