Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#1

Timer in einer Unit

  Alt 19. Mär 2015, 18:00
Ich brauche einen Timer in einer Unit oder Klasse (ist noch nicht klar). Bei einem Formular packe ich einfach die Timer Komponente drauf und gut ist es. Nur wie mache ich das wenn ich kein Formular habe?

Ich hab mir die Timer Komponente angeguckt, auf das nötigste, zumindest was ich für nötig halte, gestaucht, und den Code erstellt. Funktionieren tut es, gleich beim ersten Mal. Nur bei mir hat noch nie etwas beim ersten Mal funktioniert, was mich skeptisch macht.

Ich brauch es nicht kompliziert, nur eben, dass etwas im Takt ausgeführt wird. In dem Code der TTimer Komponente wird noch auf WM_TIMER geprüft. Ist das nötig?

Was mich wundert ist auch IDEvent. In der Api-Hilfe steht, dass der Wert nur von Null verschieden sein soll. Bei der Timer-Komponente steht da einfach ein 1. Aber so wie ich es verstanden haben wird der Wert bei KillTimer benötigt um das Ganze zu stoppen. Wie wird hier also zwischen den einzelnen Timern unterschieden?

Delphi-Quellcode:
const
  IDEvent: Integer = 1; //Von Null verschieden

var
  a: Integer = 0;

procedure OnTimer;
begin
  Inc(a)
end;

procedure TimerStop;
begin
  KillTimer(Application.Handle, IDEvent);
end;

procedure TimerStart;
var
  Interval: Cardinal;
begin
  TimerStop;
  Interval := 1000;
  SetTimer(Application.Handle, IDEvent, Interval, @OnTimer);
end;
  Mit Zitat antworten Zitat