AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ampelschaltung

Ein Thema von NewDelphiBenutzer · begonnen am 30. Sep 2010 · letzter Beitrag vom 30. Sep 2010
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Ampelschaltung

  Alt 30. Sep 2010, 16:44
Ich würde das ungefähr so lösen:

Delphi-Quellcode:
Farbarray [0..3] of farben = (grün,gelb,rot,gelb);

....
 Anzeigefarbe:=Farben[Klickzaehler and 3];
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Ampelschaltung

  Alt 30. Sep 2010, 16:51
Ich glaube, es geht dem Lehrer um die if-Verzweigung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
NewDelphiBenutzer

Registriert seit: 30. Sep 2010
14 Beiträge
 
#3

AW: Ampelschaltung

  Alt 30. Sep 2010, 17:01
jaa also ich habe eigentlichn noch kaum was geschafft
bei mir stande bis jetzt nur das mit
if button.color=clgreen;
then button.color:=yellow;
else button.color;=green;
und dann konnte man schon mal von nix auf grün und dann auf gelb schalten
und danach wusste ich nicht wie es weiter geht das man auf rot macht danach weil bei mir wurde es dann beim ersten klick rot :S
  Mit Zitat antworten Zitat
NewDelphiBenutzer

Registriert seit: 30. Sep 2010
14 Beiträge
 
#4

AW: Ampelschaltung

  Alt 30. Sep 2010, 17:05
ups sorry ich meinte
if formular.color=clgreen;
then formular.color:=yellow;
else formular.color;=green;
und dann konnte man schon mal von nix auf grün und dann auf gelb schalten
und danach wusste ich nicht wie es weiter geht das man auf rot macht danach weil bei mir wurde es dann beim ersten klick rot :S





ICh weiß nicht, wie man das mitm Quelltext einfügt. :S
auf jeden fall soll ich ein Programm machen das mit nur einem button funktioniert
er soll die farbe bei jedem klick ändern wie eine Ampel

Geändert von NewDelphiBenutzer (30. Sep 2010 um 17:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Ampelschaltung

  Alt 30. Sep 2010, 17:10
Du kannst deine Beiträge innerhalb von 24 Stunden editieren. Du musst also nicht jedes mal einen neuen Beitrag erstellen. Und bitte benutze Delphi-Tags für deinen Delphi-Code.

Versuch doch erst mal das ganze auf Papier aufzuschreiben oder in einem Flussdiagramm darzustellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Ampelschaltung

  Alt 30. Sep 2010, 17:11
Na dann vielleicht so:

Code:
wenn Farbe=Grün dann Farbe=gelb
wenn Farbe=Gelb dann
  wenn Vorgängerfarbe=grün dann Farbe=rot
  wenn Vorgängerfarbe=rot dann Farbe=grün
wenn Farbe=rot dann Farbe=grün
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
NewDelphiBenutzer

Registriert seit: 30. Sep 2010
14 Beiträge
 
#7

AW: Ampelschaltung

  Alt 30. Sep 2010, 17:41
ja wie soll ich das denn schreiben
es wird dann immer sofort rot und nicht erst grün und gelb
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#8

AW: Ampelschaltung

  Alt 30. Sep 2010, 17:54
Wie war das mit Flussdiagramm? Rot - Gelb - Grün - Gelb (sind 4 Zustände)

So, wie kommt man jetzt von dem ersten Zustand auf den nächsten? Ganz einfach. Zuerst definiert man, dass man sich beim 1. Zustand befindet. Die Ampel ist also rot.
Delphi-Quellcode:
AmpelFeld.Color := clRed;
Zustand := 1;
So, jetzt wird der Button gedrückt. Dadurch änderst du zuerst den Zustand.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Zustand := Zustand + 1; // Zustand ist eine globale Variable (var Zustand: Integer)
  if Zustand > 4 then
    Zustand := 1;
So, jetzt gehst du immer wieder alle Zustände durch. Visuell passiert jetzt noch nichts. Das kommt jetzt erst:
Delphi-Quellcode:
  if (Zustand = 1) then // Ampel wird ROT
    AmpelFeld.Color := clRed;

  if (Zustand = 2) then // Ampel wird das erste mal Gelb (oder Rot/Gelb)
    AmpelFeld.Color := clYellow;

  if (Zustand = 3) then // Ampel wird grün
    AmpelFeld.Color := clGreen;

  if (Zustand = 4) then // Ampel wird das 2. Mal Gelb
    AmpelFeld.Color := clYellow;
end;
So, jetzt musst du das erst einmal verstehen. Dazu erklärst DU mir mal, was der obrige Code macht.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Ampelschaltung

  Alt 30. Sep 2010, 17:46
Ganz einfach in dem du seinen Code in Delphi schreibst

Du musst zuerst die Farbe auf deinen gewünschten Startwert setzen (rot wäre wohl das "sicherste"). Das kannst du im FormCreate machen (doppelklick auf das Formular).

Dann übersetzt du den Code in Delphi (das sind nur ifs und elses ) und lässt den ausführen, wenn man auf den Button klickt. Das sollte dann funktionieren. Ansonsten brauchen wir mehr Code.

Besonders dein zweiter Code sieht sehr interessant aus:
Delphi-Quellcode:
if formular.color=clgreen;
then formular.color:=yellow;
else formular.color;=green;
Heißt: Wenn das Formular Grün ist, dann mache es Gelb, ansonsten mache es Grün. D.h. wenn es gelb oder rot ist, wird es sofort Grün.

MfG
Fabian
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
NewDelphiBenutzer

Registriert seit: 30. Sep 2010
14 Beiträge
 
#10

AW: Ampelschaltung

  Alt 30. Sep 2010, 17:55
das ist mein quelltext keine ahnugn wie man den anders einfügt


procedure TForm1.AmpelBtnClick(Sender: TObject);
begin
if form1.color=clgreen
then form1.color:=clyellow
else form1.color:=clgreen;
if form1.color=clyellow
then form1.color:=clred;



end;




aber das geht auch nicht es wird einfach grün dann rot dann wieder grün und ich weiß nichjt wie man das ändert
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 19:07 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