AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variable

Ein Thema von Klimpel · begonnen am 5. Okt 2004 · letzter Beitrag vom 5. Okt 2004
Antwort Antwort
Klimpel

Registriert seit: 26. Sep 2004
Ort: Bochum
5 Beiträge
 
#1

Variable

  Alt 5. Okt 2004, 18:57
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
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#2

Re: Variable

  Alt 5. Okt 2004, 19:01
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....
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Variable

  Alt 5. Okt 2004, 19:01
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:
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;
Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Variable

  Alt 5. Okt 2004, 19:03
Hi klimpel,

um eine Ampelschaltung ging es erst vor kurzem. Vielleicht hilft dir dieser Tipp

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Klimpel

Registriert seit: 26. Sep 2004
Ort: Bochum
5 Beiträge
 
#5

Re: Variable

  Alt 5. Okt 2004, 20:42
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...
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#6

Re: Variable

  Alt 5. Okt 2004, 20:53
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:
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;
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:
Code:
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;
Greetz
alcaeus

[edit]Verf****e BB-Tags [/edit]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz