Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - And und Or Verknüpfung
Zuckerrübe - Sa 28.03.09 11:56
Titel: And und Or Verknüpfung
Hey,
wie kann ich in einer if Function mehrere Bedingungen mit AND und OR mit einander Verknüpfen ??
z.B.
Delphi-Quelltext
1: 2:
| if (a=2) and (b>1) then c:= 50; |
schlechtes Beispiel aber vielleicht versteht einer was ich mein. ;-)
GTA-Place - Sa 28.03.09 11:59
Äh, genau so, wie du es gerade gepostet hast :lol:
Hidden - Sa 28.03.09 12:01
Hi :)
Eigentlich sagt dein Beispiel ja schon alles :gruebel:
Mal ein etwas komplexeres:
1:
| if a and not ((b or c) and (d or e)) |
<=>Wenn a wahr ist, aber gleichzeitig b, c, d und e falsch sind.
mfG,
Zuckerrübe - Sa 28.03.09 12:19
Danke für eure schnellen Antworten, aber dein Beispiel ist echt komplex ^^
also ich habe folgendes Problem:
ich will schaun ob in 3 panels das gleiche drin steht und wenn ja dann soll er in ein label was einfügen.
Delphi-Quelltext
1: 2:
| if (Panel1.Caption) and (Panel2.Caption) and (Panel3.Caption) = 'X' then label1.Caption:= 'was weis ich ^^'; |
so habe ich mir das vorgestellt, nur will mir das der compiler nicht abnehmen.
mfg
Ulixes - Sa 28.03.09 12:23
Hallo,
Versuch es mal so:
Delphi-Quelltext
1: 2:
| if (Panel1.Caption = 'X') and (Panel2.Caption='X') and (Panel3.Caption='X') then label1.Caption:= 'was weis ich ^^'; |
Weiß aber nicht, ob das sauber ist...ich mach es manchmal so
Mfg
EDIT: Sorry...gerade ein Denkfehler...du musst zu jeder deiner Überprüfungen eine Bedingung schreiben.
Das war dein Fehler.
Hidden - Sa 28.03.09 12:27
Wundert mich, dass du da keine Fehlermeldung bekommst :? "incompatible types: boolean and string".
Eigentlich müsste das so aussehen:
1: 2:
| if (Panel1.Caption = Panel2.Caption) and (Panel2.Caption = Panel3.Caption) then .. |
Die logischen Operatoren and und or sind übrigens von den umgangssprachlichen verschieden. Wir verwenden "a and b" nämlich auch, um Elemente zu Mengen zusammenzufügen(
[a] and [b] = [a, b]).
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| And: And(a, b: Boolean): Boolean. tr fl ---------- tr- tr fl fl- fl fl
Or: Or(a, b: Boolean): Boolean. tr fl ---------- tr- tr tr fl- tr fl
->Or ist also die Negation der Spiegelung der Wahrheitstabelle von And an der Mittelachse ->Or(a, b) = not(And(not(a), not(b))) = not(not a and not b),
mit not(z: Boolean): Boolean. z not(z) ---------- tr- fl fl- tr |
mfG,
platzwart - Sa 28.03.09 12:27
Delphi-Quelltext
1: 2:
| if (Panel1.Caption = 'X') and (Panel2.Caption = 'X') and (Panel3.Caption = 'X') then label1.Caption:= 'was weis ich ^^'; |
GTA-Place - Sa 28.03.09 12:29
3x Orange unter mir, aber ich korrigiere mal: Du musst das jeweils extra schreiben:
Delphi-Quelltext
1:
| if (Panel1.Caption = 'X') AND (Panel2.Caption = 'X') AND ... |
bzw.:
Delphi-Quelltext
1:
| if (Panel1.Caption = 'X') AND (Panel2.Caption = Panel1.Caption) AND ... |
Hier bieten sich dann Variablen an:
Delphi-Quelltext
1: 2: 3: 4: 5:
| P1 := Panel1.Caption; P2 := Panel2.Caption P3 := Panel3.Caption;
if (P1 = 'X') AND (P2 = P1) AND (P3 = P1) then |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!