Einzelnen Beitrag anzeigen

BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#52

AW: Timer in einer Unit

  Alt 23. Mär 2015, 09:23
Der 2.Parameter in hathor's Beispiel bei SetTimer() sollte auch nicht 1, sondern 0 sein.
Denn wenn ein Timer mit der ID = 1 exestieren würde, dann würde dieser mit den neuen Werten überschrieben werden und kein neuer Timer erzeugt.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
id1 := SetTimer(0, 0, 2000, @MyTimer); Memo1.Lines.Add('id1:' + INTTOSTR(id1)); //2000msec
id2 := SetTimer(0, id1, 4000, @MyTimer); Memo1.Lines.Add('id2:' + INTTOSTR(id2)); //4000msec
id3 := SetTimer(0, id2, 6000, @MyTimer); Memo1.Lines.Add('id3:' + INTTOSTR(id3)); //6000msec
end;
In diesem Beispiel wird nur 1 Timer erzeugt, welcher am Schluß einen Interval von 6000 hat.

Bei Hwnd = 0 also immer 0 als 2. Parameter, denn nur dann ist auch gwährleistet, dass auch tatsächlich ein neuer Timer erstellt wird, ausser man willnatürlich einen bestehenden Timer mit neuem Interval belegen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat