AGB  ·  Datenschutz  ·  Impressum  







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

Verschachtelte iflcauses

Ein Thema von Binary · begonnen am 30. Sep 2004 · letzter Beitrag vom 30. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Binary

Registriert seit: 30. Sep 2004
Ort: Köln
27 Beiträge
 
Delphi 5 Standard
 
#1

Verschachtelte iflcauses

  Alt 30. Sep 2004, 15:46
Hi @all!

Ich soll in Informatik unter Delphi eine Ampel schreiben, sie soll nur aus ifclausen bestehen, mit der ersten, die pro klick weiter schaltet, von rot auf gelb, auf grün klappt das wunrderbar, bei der zweiten soll die von rot auf rot/gelb dann auf grün, von grün dann auf gelb dann auf rot

das probl. habe ich analysiert, sobald ich zwei felder aktiv habe macht der nix mehr, hier mein code der beim button steht

Delphi-Quellcode:
if s_rot.Brush.Color =clred
     then
     begin
     s_gelb.Brush.Color :=clyellow;
     end
     else
          if s_gelb.brush.color =clyellow
          then
          begin
          s_rot.Brush.Color :=clwhite;
          s_gelb.Brush.Color :=clwhite;
          s_gruen.brush.color :=clgreen;
          end
          else
              if s_gruen.brush.color =clgreen
              then
              begin
              s_gruen.Brush.Color :=clwhite;
              s_gelb.Brush.Color :=clyellow;
              end
              else
              begin
              s_gelb.Brush.color :=clwhite;
              s_rot.brush.color :=clred
              end
was is falsch?

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
Kian
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Verschachtelte iflcauses

  Alt 30. Sep 2004, 15:54
Hallo

Schreibe mal anstatt:

Delphi-Quellcode:
If blabla then
begin
  bla bla;
end
else
  if bla bla...
dies:

Delphi-Quellcode:
If blabla then
begin
  bla bla;
end
else
begin
   if bla bla...
end
Dann wirds übersichtlicher....nicht nur für den Compiler. 8)

MfG Gunar
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Verschachtelte iflcauses

  Alt 30. Sep 2004, 15:56
Delphi-Quellcode:
if s_rot.Brush.Color = clred then
begin
  s_gelb.Brush.Color :=clyellow;
end
else
begin
  if s_gelb.brush.color =clyellow then
  begin
    s_rot.Brush.Color :=clwhite;
    s_gelb.Brush.Color :=clwhite;
    s_gruen.brush.color :=clgreen;
  end
  else
  begin
    if s_gruen.brush.color =clgreen then
    begin
      s_gruen.Brush.Color :=clwhite;
      s_gelb.Brush.Color :=clyellow;
    end
    else
    begin
     s_gelb.Brush.color :=clwhite;
     s_rot.brush.color :=clred
    end;
  end;
end;
Ich habe einige begins und ends eingefügt, probier das mal aus
  Mit Zitat antworten Zitat
Binary

Registriert seit: 30. Sep 2004
Ort: Köln
27 Beiträge
 
Delphi 5 Standard
 
#4

Re: Verschachtelte iflcauses

  Alt 30. Sep 2004, 16:15
danke für eure hilfe aber leider kommt immer noch der gleiche Fehler!
Kian
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Verschachtelte iflcauses

  Alt 30. Sep 2004, 17:15
Herzlich willkommen in der DP.

Was kommt denn genau für ein Fehler? Kommt irgendeine Meldung?
  Mit Zitat antworten Zitat
Binary

Registriert seit: 30. Sep 2004
Ort: Köln
27 Beiträge
 
Delphi 5 Standard
 
#6

Re: Verschachtelte iflcauses

  Alt 30. Sep 2004, 17:35
Danke!
das programm läuft ja, theoretisch is ja nichts falsch, aber leider schaltet die ampel nicht auf grün!
Kian
  Mit Zitat antworten Zitat
Binary

Registriert seit: 30. Sep 2004
Ort: Köln
27 Beiträge
 
Delphi 5 Standard
 
#7

Re: Verschachtelte iflcauses

  Alt 30. Sep 2004, 17:53
ich lade euch einfach mal alles hoch, ihr könnt es ja dann selbst sehen
Angehängte Dateien
Dateityp: zip p_ampel1.zip (171,7 KB, 15x aufgerufen)
Kian
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Verschachtelte iflcauses

  Alt 30. Sep 2004, 18:52
Hi Binary!

Machs dir doch nicht so kompliziert

Delphi-Quellcode:
procedure Tf_ampel.b_goClick(Sender: TObject);

begin
  {Zustände (Kannste zB. im Tag vom Form abspeichern);
  0 rot
  1 rot/gelb
  2  grün
  3 gelb}


case f_ampel.Tag of
0: begin s_rot.Brush.Color:=clred; s_gelb.Brush.Color :=clwhite; s_gruen.brush.color :=clwhite; end;
1: begin s_rot.Brush.Color:=clred; s_gelb.Brush.Color :=clyellow; s_gruen.brush.color :=clwhite; end;
2: begin s_rot.Brush.Color:=clwhite; s_gelb.Brush.Color :=clwhite; s_gruen.brush.color :=clgreen; end;
3: begin s_rot.Brush.Color:=clwhite; s_gelb.Brush.Color :=clyellow; s_gruen.brush.color :=clwhite; end;
end;

f_ampel.Tag:=f_ampel.Tag+1;
if f_ampel.tag > 3 then f_ampel.Tag:=0;

end;
Gruß GM

P.S.: Bei mir hat dein Code funktioniert...die Ampel sprang auf Grün.... !?!?!


Zitat:
... eine Ampel schreiben, sie soll nur aus ifclausen bestehen, ...
Ooops, sorry grad erst gesehen.
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

Re: Verschachtelte iflcauses

  Alt 30. Sep 2004, 19:12
Fehler gefunden !!!

Delphi-Quellcode:
if s_rot.Brush.Color = clred then // trifft auch bei rot/gelb zu !!!!!
begin
  s_gelb.Brush.Color :=clyellow;
end
else // trifft nur bei gelb zu, bei rot/gelb wird's übersprungen !!!
begin
  if s_gelb.brush.color =clyellow then
  begin
    s_rot.Brush.Color :=clwhite;
    s_gelb.Brush.Color :=clwhite;
    s_gruen.brush.color :=clgreen;
  end
  else
  begin
    if s_gruen.brush.color =clgreen then
    begin
      s_gruen.Brush.Color :=clwhite;
      s_gelb.Brush.Color :=clyellow;
    end
    else
    begin
     s_gelb.Brush.color :=clwhite;
     s_rot.brush.color :=clred
    end;
  end;
end;
Lösung auch gefunden:
Delphi-Quellcode:
procedure Tf_ampel.b_goClick(Sender: TObject);
begin
if (s_rot.Brush.Color = clred) AND (s_gelb.Brush.Color = clwhite) then
begin
  s_gelb.Brush.Color := clyellow;
end
else
begin
  if (s_rot.Brush.Color = clred) AND (s_gelb.brush.color = clyellow) then
  begin
    s_rot.Brush.Color := clwhite;
    s_gelb.Brush.Color := clwhite;
    s_gruen.brush.color := clgreen;
  end
  else
  begin
    if s_gelb.brush.color := clyellow then
    begin
      s_rot.Brush.Color := clred;
      s_gelb.Brush.Color := clwhite;
      s_gruen.brush.color := clwhite;
    end
    else
    begin
      if s_gruen.brush.color = clgreen then
      begin
        s_gruen.Brush.Color := clwhite;
        s_gelb.Brush.Color := clyellow;
      end
      else
      begin
       s_gelb.Brush.color := clwhite;
       s_rot.brush.color := clred
      end;
    end;
  end;
end;

end;
Ich weis, ich bin gemein. (Bevor du den Fehler postest, schau dir den Code nochmal an ... )
  Mit Zitat antworten Zitat
Binary

Registriert seit: 30. Sep 2004
Ort: Köln
27 Beiträge
 
Delphi 5 Standard
 
#10

Re: Verschachtelte iflcauses

  Alt 30. Sep 2004, 19:22
sry aber wir müssen diesen kram mit den if clauses machen, wir sind ja noch am anfang, und leider klappt das bei mir net
Kian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:30 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