Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit IF-Schleife und dem Operandentyp (https://www.delphipraxis.net/178182-problem-mit-if-schleife-und-dem-operandentyp.html)

naddlinchen 21. Dez 2013 15:36

Delphi-Version: 7

Problem mit IF-Schleife und dem Operandentyp
 
Hallo Leute.

In meinem Programm habe ich eine IF-Schleife eingebaut mit 4 verschiedenen Bedingungen. Es geht grob dadrum, dass zahl1, zahl2 usw. (das sind Panels mit Zahlen), die beim Anklicken verschwinden. Zusätzlich gibt es noch einen Button, der die Form1 schließen soll, wenn alle vier Panels unsichtbar sind. Dies habe ich mithilfe der IF-Schleife versucht zu realisieren. Jedoch wird folgender Fehler in der IF-Schleife nach dem zweiten AND angezeigt: Operator ist auf diesen Operandentyp nicht anwendbar.

Wie kann ich diesen Fehler beheben?

Danke im Voraus

Delphi-Quellcode:

          IF (zahl1.Visible:= false) AND
             (zahl2.Visible:= false) AND
             (zahl3.Visible:= false) AND
             (zahl4.Visible:= false)
         
          THEN Form1.Visible:= false;

nahpets 21. Dez 2013 15:39

AW: Problem mit IF-Schleife und dem Operandentyp
 
:= gilt für Zuweisungen = für Vergleiche, in den Abfragen darf daher nur
Delphi-Quellcode:
zahl1.Visible = false
stehen

Aphton 21. Dez 2013 15:40

AW: Problem mit IF-Schleife und dem Operandentyp
 
Versuchs mit einer Case-Procedure!

Ne im ernst, da ist so einiges falsch am Code.. Versuch keine Sätze zu formulieren, wenn du das Alphabet noch nicht drauf hast!

naddlinchen 21. Dez 2013 15:44

AW: Problem mit IF-Schleife und dem Operandentyp
 
nahpets, vielen Dank =)

jetzt läuft es wie geschmiert =)

Perlsau 21. Dez 2013 15:49

AW: Problem mit IF-Schleife und dem Operandentyp
 
Zitat:

Zitat von naddlinchen (Beitrag 1240687)
In meinem Programm habe ich eine IF-Schleife eingebaut ...

Das ist keine Schleife. Eine Schleife im Programmcode stellt Methoden dar, die wiederholt durchlaufen werden, bis eine Abbruch-Bedingung eintritt. Dein Code stellt Abfragen dar. Die gängigsten Schleifen sind While- und Repeat-Schleifen.

Beim Delphi-Treff gibt es gute Einsteiger-Tutorials:

Grundlagen-Tutorials
E-Book "Delphi-Starter"

Viel Spaß beim Lernen :stupid:

Bernhard Geyer 21. Dez 2013 15:55

AW: Problem mit IF-Schleife und dem Operandentyp
 
Zitat:

Zitat von naddlinchen (Beitrag 1240687)
In meinem Programm habe ich eine IF-Schleife eingebaut mit 4 verschiedenen Bedingungen.

Alle Probleme die sich im Bereich if-Schleifen ergeben können werde auf dieser Webseite umfassend behandelt.

Popov 21. Dez 2013 16:21

AW: Problem mit IF-Schleife und dem Operandentyp
 
Zitat:

Zitat von Perlsau (Beitrag 1240692)
Das ist keine Schleife.

Es gibt sogar eine Webseite die das Thema ausführlich und in allen Einzelheiten behandelt: http://www.if-schleife.de/

Edit:

Ok, ich sehe gerade Bernhard Geyer war schneller.

Meflin 21. Dez 2013 17:26

AW: Problem mit IF-Schleife und dem Operandentyp
 
Und jetzt nochmal, wie man's richtig macht:
Delphi-Quellcode:
 
Form1.Visible := zahl1.Visible or zahl2.Visible or zahl3.Visible or zahl4.Visible;

Sir Rufo 21. Dez 2013 17:31

AW: Problem mit IF-Schleife und dem Operandentyp
 
Zitat:

Zitat von Meflin (Beitrag 1240701)
Und jetzt nochmal, wie man's richtig macht:
Delphi-Quellcode:
 
Form1.Visible := zahl1.Visible or zahl2.Visible or zahl3.Visible or zahl4.Visible;

Trifft aber nicht die Anforderung
Delphi-Quellcode:
FormHide_Button.Enabled :=
  not ( 
    Zahl1.Visible or
    Zahl2.Visible or
    Zahl3.Visible or
    Zahl4.Visible );

Meflin 21. Dez 2013 17:37

AW: Problem mit IF-Schleife und dem Operandentyp
 
Zitat:

Zitat von Sir Rufo (Beitrag 1240702)
Trifft aber nicht die Anforderung

Ähh, doch?! Form1 ist solange visible, wie irgendeine der anderen Komponenten visible ist, und nur dann nicht visible, wenn es alle anderen auch nicht sind. Im Gegensatz dazu würde dein Vorschlag die Form auch invisble machen, wenn alle anderen visible sind. Edit: Ach ne, doch nicht - weil du einfach mal die komplette Semantik mit geändert hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.
Seite 1 von 2  1 2      

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