Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium? (https://www.delphipraxis.net/9831-caseof-anweisung-mehrere-befehle-pro-auswahlkriterium.html)

SimOr 5. Okt 2003 16:10


CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
Ist es möglich bei der CaseOf Anweisung mehrere Befehle pro Auswahlkriterium zu verwenden?
Mein bisheriger Source sieht so aus

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Image2: TImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
case visible of
True   : Image1.visible:=False; //hier möchte ich das Image2 sichtbar wird
end

end;

end.
Falls jemand den gesamten source shice findet und nen besseren Vorschlag hat...immer her damit!!!

flomei 5. Okt 2003 16:15

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
:hi:
Delphi-Quellcode:
case Visible of
  True: begin
   Image1.Visible := False;
   Image2.Visible := True;
  end;
  False: begin
   Image1.Visible := True;
   Image2.Visible := False;
  end;
end;
Hatten wir aber auch schonmal glaub ich...

MfG Florian :hi:

Frank Bicking 5. Okt 2003 16:42

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
Wäre das hier nicht das gleiche?

Delphi-Quellcode:
Image1.Visible := not Visible;
Image2.Visible := Visible;

SimOr 5. Okt 2003 16:47

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
THX, aber kann ich da auch mit drei oder vier Images machen?

Sharky 5. Okt 2003 16:52

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
Zitat:

Zitat von SimOr
THX, aber kann ich da auch mit drei oder vier Images machen?


Wie meinst du das? Das Du eine Variable hast und anhand dieser entschieden wird welches dein n Images sichtbar ist?

SimOr 5. Okt 2003 17:01

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
Ich wollte ne "Ampelschaltung" als Übung machen, also 4 Images, 3 unsichtbar und 1 sichtbar.
Nun moechte ich das das image 1(rot) unsichtbar wird und das image 2(Rot/Gelb)sichtbar wird.
Danach(ein weiterer click auf den Button) soll das Image2 unsichtbar werden und Image3(Grün) soll erscheinen.
Danach soll Image 3 unsichtbar und Image4(gelb) sichtbar werden. Ein weiterer Click soll das Image 1 wieder sichtbar und Image4 unsichtbar machen.

Falls ihr das nicht verstanden habt(ein bischen unübersichtlich, ich weiß)
hier der Source mit If Then Else

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if ImRed.visible=True then
begin
     ImRed.visible:=False;
     ImRY.visible:=True;
end
else
begin
     if ImRY.visible=True then
     begin
          ImRY.visible:=False;
          ImGreen.visible:=True;
     end
     else
     begin
          if ImGreen.visible=True then
          begin
               ImGreen.visible:=False;
               ImYellow.visible:=True;
          end
          else
          begin
               if ImYellow.visible=True then
               begin
                    ImYellow.visible:=False;
                    Imred.visible:=True;
               end
           end
       end
  end

Hoffe du kannst damit was anfangen.

Sharky 5. Okt 2003 17:31

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
Hai SimOr,

das habe ich eben mal so gelöst:


http://www.sharkys-home.de/smiles/finger.gif
Delphi-Quellcode:
const
 rot = 1;
 rot_gelb = 2;
 gelb = 3;
 gruen = 4;
 gelb2 = 5;
var
 sichtbar : Integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
 sichtbar := rot;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin
 Image1.Visible := (sichtbar = rot) OR (sichtbar = rot_gelb);
 Image2.Visible := (sichtbar = gelb) or (sichtbar = rot_gelb) or (sichtbar = gelb2);
 Image3.Visible := sichtbar = gruen;
 INC (sichtbar);
 if (sichtbar > gelb2) then sichtbar := 1;
end;
Schau mal ob Du verstehst was passiert!

[EDIT] Ich habe den Code eben noch erweitert. Ich hatte eine Schaltungsphase vergessen!!!

SimOr 6. Okt 2003 14:40

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
danke danke.
Soweit sind wir in Informatk leider noch nicht, aber ich habe mir deinen Source angeguckt und ihn(fast) auf Anhieb verstanden...mit TForm1.FormCreate habe Ich noch nie gearbeitet :lol:
Bis dann, ich poste bestimmt nochmal die ein oder andere Frage :zwinker:

Cya

flomei 6. Okt 2003 17:26

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
Zitat:

Zitat von SimOr
...mit TForm1.FormCreate habe Ich noch nie gearbeitet

:warn: FormCreate ist das Ereignis welches ausgeführt wird wenn die Form zum ersten Mal erzeugt wird. Meistens also bei Programmstart...
Wenn du noch Fragen zu FormCreate hast mach nen neuen Thread auf. Danke!

MfG Florian :hi:

Sharky 6. Okt 2003 17:50

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
Zitat:

Zitat von flomei
:warn:
Wenn du noch Fragen zu FormCreate hast mach nen neuen Thread auf. Danke!...

Neuer Mod? Wusste ich noch nicht.

Werde es aber in zukunft bei allem berücksichtigen!

flomei 6. Okt 2003 20:21

Re: CaseOf Anweisung---mehrere Befehle pro Auswahlkriterium?
 
:? Das hast du jetzt vielleicht ein bisschen falsch verstanden.
Das :warn: war mehr als Lehrperson gemeint, nicht warnend. Und die kurze Erklärung dachte ich mach ich aus Höflichkeit :) Wenn er noch mehr Fragen zu FormCreate hat ist es besser einen neuen Thread aufzumachen weil du weisst doch, dass wir die Forensuche lieben :love: und das würde die Gute doch durcheinander bringen wenn hier noch FormCreate behandelt wird...

MfG Florian :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:26 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