![]() |
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; |
AW: Problem mit IF-Schleife und dem Operandentyp
:= gilt für Zuweisungen = für Vergleiche, in den Abfragen darf daher nur
Delphi-Quellcode:
stehen
zahl1.Visible = false
|
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! |
AW: Problem mit IF-Schleife und dem Operandentyp
nahpets, vielen Dank =)
jetzt läuft es wie geschmiert =) |
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
Beim Delphi-Treff gibt es gute Einsteiger-Tutorials: ![]() ![]() Viel Spaß beim Lernen :stupid: |
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
![]() |
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
![]() Edit: Ok, ich sehe gerade Bernhard Geyer war schneller. |
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; |
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
Delphi-Quellcode:
FormHide_Button.Enabled :=
not ( Zahl1.Visible or Zahl2.Visible or Zahl3.Visible or Zahl4.Visible ); |
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
|
AW: Problem mit IF-Schleife und dem Operandentyp
DeMorgan lässt grüßen! (#8 stimmt)
|
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
|
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
Zitat:
![]() |
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
Ach und keiner soll sich bitte angegriffen fühlen, aber wenn doch, kann er sich bitte ein Kissen nehmen und reinbrüllen. |
AW: Problem mit IF-Schleife und dem Operandentyp
Das ist grundsätzlich richtig, wobei stets der Ton die Musik macht. Den Hinweis auf eine falsche Formulierung finde an sich schon gut, nur sollte er dann im Idealfall mit einem Hinweis auf die Problemlösung gepaart sein.
|
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
|
AW: Problem mit IF-Schleife und dem Operandentyp
Code vom Fragesteller = Dein Code = nicht das, was Fragesteller erreichen will.
Sir Rufo sein Code = das, was Fragesteller will. |
AW: Problem mit IF-Schleife und dem Operandentyp
Zitat:
Aber der TE hat nie gesagt, dass dann ein Button eingeblendet werden soll, vielmehr Zitat:
Delphi-Quellcode:
Hier gibt es keinen Button mehr, der erst noch eingeblendet werden muss...
procedure TForm2.HideForm1ButtonClick(sender : TObject)
begin form1.visible := zahl1.Visible or zahl2.Visible or zahl3.Visible or zahl4.Visible; end; Aber wie gesagt, da uns die Rückmeldung des TE fehlt und für ihn/sie die Frage sowieso geklärt zu sein scheint, ist es eher müßig, zu diskutieren, aber ich konnte wieder einmal meine Klappe nicht halten :stupid: |
AW: Problem mit IF-Schleife und dem Operandentyp
Stimmt. Gestern habe ich die Frage anders interpretiert. War wohl etwas spät.. :mrgreen:
|
AW: Problem mit IF-Schleife und dem Operandentyp
Und auch wenn es schon indirekt gezeigt wurde.
NIEMALS mit True/False Vergleichen :!: Das ist schon ein Boolean, da ist das eh nicht mehr notwendig
Delphi-Quellcode:
if B = True then // FALSCH
if B then // RICHTIG if B = False then // FALSCH if not B then // RICHTIG Die Konstante True ist intern (im Boolean eine 1, bei ByteBool/WordBool/LongBool eine -1), aber der "Wert" True ist als <>0 definiert. Ein Boolean ist eigentlich ein Byte und kann "theoretisch" mehr als nur 2 Zustände enthalten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:52 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