![]() |
Umgang mit der Timer Komponente
Hallo Delphi-Freunde :-D
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:
Oder funktioniert der Timer nur, wenn er auch in der Prozedur
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;
Delphi-Quellcode:
eingebunden ist ??
TForm1.Timer1Timer(Sender: TObject);
Denn ich wollte das so realisieren, aber die Ampel zeigt nur die Rotphase an...
Delphi-Quellcode:
Funktioniert das überhaupt so ?? Oder mache ich einen Grundlegenden Fehler, denn wie gesagt, es werden die anderen Ampelphasen nicht angezeigt.
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; Gruß Tobias :hi: |
Re: Umgang mit der Timer Komponente
Hi!
Du machst einen grundlegenden Fehler...
Delphi-Quellcode:
In jedem Timerintervall wird i auf 1 gesetzt und die späteren incs können daran nichts ändern.
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer; begin i:=1; // <-- ...und zwar hier Gruß Calculon -- |
Re: Umgang mit der Timer Komponente
Huhu :hi:
Stimmt :wall: Nun hab ich es geändert und alles scheint zu funktionieren... muss noch ein bissl testen :zwinker: Danke schön... |
Re: Umgang mit der Timer Komponente
und du solltest am besten i als globale oder wenigstens klassenvarible deklarieren, sonst wird i bei jedem timer aufruf undefiniert sein
|
Re: Umgang mit der Timer Komponente
Zitat:
i ist eine lokale variable die in der funktion deklariert wird... vllt braucht er sie ja nur da. ansonsten umbenennen und als feld in der klasse deklarieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz