![]() |
Property "Visible" mit mehreren Boolean Werten ste
Hallo zusammen,
ich würde gerne die Property "Visible" einer Komponente mit mehreren Boolean-Werten steuern. Im Moment habe ich diese zeilen Code :
Delphi-Quellcode:
Nur egal was ich für Werte an ysnDemoend und MietVers (beide vom Typ Boolean) übergebe, keine der Komponenten werden angezeigt. Was mache ich da Falsch ?
L_Demoversion.Visible := ysnDemoend and (not MietVers);
L_DBEmpty.Visible := (not ysnDemoend) and (not MietVers); L_KundenLink.Visible := (not ysnDemoend) and (not MietVers); L_HinweisBeitraege.Visible := (not ysnDemoend) and (not MietVers); |
Re: Property "Visible" mit mehreren Boolean Werten
Zitat:
L_Demoversion siehst muss ysnDemoend = true und MietVers = false sein. für alle anderen musst du beide auf False stellen. |
Re: Property "Visible" mit mehreren Boolean Werten
Hallo,
bei expliziter Klammerung werde ich hellhörig.
Delphi-Quellcode:
var
bKaufVer: Boolean; begin bKaufVer:= not MietVers; // dann bKaufVer verwenden Heiko |
Re: Property "Visible" mit mehreren Boolean Werten
Hallo Ihr beiden,
danke für Eure Antworten. @Corpsman: Dein Hinweis, welchen Wert ich setzen muss, hat mir bei der Problemlösung sehr geholfen. @Heiko: Die Klammern waren ein eigener Versuch es selber in den Griff zu bekommen. Ich habe das nur gemacht, weil ich Klammern immer in einer IF-Abfrage benutze, wenn ich AND oder OR-Verknüpfungen benutze. |
Re: Property "Visible" mit mehreren Boolean Werten
NOT hat Vorrang von AND, also würde Delphi es intern praktisch genauso "klammern"/zusammenfassen.
Also ob mit oder ohne macht in diesem Fall keinen Unterschied. bloß mal als Test ... jetzt müßte immer einwas angezeigt werden
Delphi-Quellcode:
L_Demoversion.Visible := ysnDemoend and not MietVers;
L_DBEmpty.Visible := not ysnDemoend and not MietVers; L_KundenLink.Visible := ysnDemoend and MietVers; L_HinweisBeitraege.Visible := not ysnDemoend and MietVers; |
Re: Property "Visible" mit mehreren Boolean Werten
Zitat:
|
Re: Property "Visible" mit mehreren Boolean Werten
Es gibt da auch irgendwo in der OH eine Tabelle, mit den Vorrangregeln
ich glaub es war in etwa so
Code:
praktisch wird von oben nach unten aufgelößt
( ) [die Klammern]
+ - [die Vorzeichen] not * / mod and or xor + - und wenn etwas in der selben "Ebene" liegt, dann wird es im Ausdruck von links nach rechts verarbeitet |
Re: Property "Visible" mit mehreren Boolean Werten
Zitat:
Rangfolge von Operatoren
aus: ms-help://borland.bds5/devcommon/expressions_xml.html |
Re: Property "Visible" mit mehreren Boolean Werten
abgesehn von "or xor" und "+ -", welches getrennt war, lag ich doch garnicht soooo falsch :angel2:
Code:
Nja, aber dennoch hast'e Recht und vollständig/ganz richtig isses schon besser :thumb:
Klammern ( )
Vorzeichen +, - @, not *, /, div, mod, and, shl, shr, as +, -, or, xor =, <>, <, >, <=, >=, in, is |
Re: Property "Visible" mit mehreren Boolean Werten
:wink: sorry, wollte nicht so barsch sein. Aber beim Programmieren machen es eben immer die Kleinigkeiten. Und eigentlich hatte ich mich eher wegen der Vorzeichen so aufgeregt und dass es sie in Delphi eigentlich so gar nicht gibt und nur von links mit 0 ergänzte binäre Operatoren sind und wollte gerade behaupten, dass man sowas wie
I := -4*-5; I := -4*--5; I := -4*---5; nicht schreiben kann. Falsch, man kann und es kommt sogar das richtige bei raus. Das zum Thema Halbwissen, shame on me... :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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