Hallo Delphi-Freunde
Ich habe ein Problem mit der Komponente "Timer" und deren Benutzung. Ich möchte eine Ampel programmieren und bin mir über die Funktionsweise des Timers nicht ganz klar.
Beispiel:
Kann der Timer so benutzt werden ?
Delphi-Quellcode:
procedure TForm1.GruenGelbRotPhase;
begin
//Grün-Gelb-Rot-Phase
Image1.Canvas.Brush.Color := clgreen;
Image1.Canvas.Ellipse(20, 152, 75, 207);
Timer1.Interval:=2000;
Image1.Canvas.Brush.Color := clyellow;
Image1.Canvas.Ellipse(20, 82, 75, 137);
Timer1.Interval:=2000;
Image1.Canvas.Brush.Color := clred;
Image1.Canvas.Ellipse(20, 12, 75, 67);
end;
Oder funktioniert der Timer nur, wenn er auch in der Prozedur
TForm1.Timer1Timer(Sender: TObject);
eingebunden ist ??
Denn ich wollte das so realisieren, aber die Ampel zeigt nur die Rotphase an...
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
i:=1;
case i of
1: begin
AmpelZeichnen;
RotPhase;
inc(i);
end;
2: begin
Timer1.Interval:=2500;
RotGelbPhase;
inc(i);
end;
3: begin
Timer1.Interval:=4000;
GruenPhase;
inc(i);
end;
4: begin
GruenGelbRotPhase;
i:=1;
end;
end;
end;
Funktioniert das überhaupt so ?? Oder mache ich einen Grundlegenden Fehler, denn wie gesagt, es werden die anderen Ampelphasen nicht angezeigt.
Gruß Tobias