![]() |
Variable
Also ich versuch eine Ampel zu programmieren, die von Rot auf grün schaltet. Und das immer nach einer bestimmten Zeit.Wie das mit dem Timer funzt weiß ich, nur wie bekomme ich das hin das die Ampel immer von rot und grün wechselt?
Dafür brauch ich doch eine variable oder? Und wenn ja wie benutz ich die... Mit freundlichem Klimpel |
Re: Variable
Einfach abfragen:
wenn die Ampel grün ist (z.B. ein Integer = 1 ist) dann schalt sie um auf rot (der Integer = 2) und sonst schalt sie um auf grün (der Integer = 1) kann man aber auch mit einem eigenen Typ machen (TAmpelFarbe = (afRot, afGruen)) und wenn du nur rot und grün hast, kannst du 'nen boolean nehmen, sagen Rot = false und mit der anweisung Variable := not Variable; zwischen rot und grün umschalten.... |
Re: Variable
hi klimpel,
wie "schaltest" du die ampel? du könntest einerseits eine variable nutzen, um den aktuellen status zu speichern, oder du greifst direkt auf das ampel-objekt zu, falls es einen gespeicherten status hat. mit einer variable könnte es so gehen:
Delphi-Quellcode:
Aenogym
var TrafficLightIsRed: boolean; //global oder im public-abschnitt des formulars definieren
{ ... } begin if TrafficLightIsred then //trafficlight.state := green; (oder so ;) ) else //trafficlight.state := red; (oder so ;) ) end; |
Re: Variable
Hi klimpel,
um eine Ampelschaltung ging es erst vor kurzem. Vielleicht hilft dir ![]() Greetz alcaeus |
Re: Variable
Ich will erstmal nur von auf grün wechsel;
procedure TForm1.StartClick(Sender: TObject); begin timer1.Enabled:=true; end; procedure TForm1.FormCreate(Sender: TObject); begin a:=2; grün.Hide; Image1.Picture.LoadFromFile('Ampel.jpg'); Image1.stretch:=true; grün.Picture.LoadFromFile('grün.bmp'); rot.Picture.LoadFromFile('rot.bmp'); end; procedure TForm1.Timer1Timer(Sender: TObject); begin If a = 1 then begin rot.Visible:=true; grün.Visible:=false; a:=2; end; If a = 2 then begin rot.visible:=false; grün.Visible:= true; a:=1; end; end; end. Jetzt hab ich nur irgendwie das problem das die Ampel die ganze ZEit grün bleibt...der timer funktioniert zwar aber springt immer wieder nur auf grün... |
Re: Variable
Hi klimpel,
bitte verwende in Zukunft die [ delphi]-Tags. Damit wird der Code übersichtlicher. Der Fehler ist leicht gefunden. Sehen wir uns das signifikante Codestück an:
Delphi-Quellcode:
Soll die Ampel rot werden (a = 1), so zeigst du rot an, blendest grün aus, und setzt a auf 2. Bei der nächsten Abfrage trifft wieder zu, also wird grün wieder eingeblendet. Die Lösung ist einfach: ein else:
If a = 1 then
begin rot.Visible:=true; grün.Visible:=false; a:=2; end; If a = 2 then begin rot.visible:=false; grün.Visible:= true; a:=1; end;
Code:
Greetz
If a = 1 then
begin rot.Visible:=true; grün.Visible:=false; a:=2; end [color=red]else[/color] If a = 2 then begin rot.visible:=false; grün.Visible:= true; a:=1; end; alcaeus [edit]Verf****e BB-Tags :evil:[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:48 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-2025 by Thomas Breitkreuz