Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Property "Visible" mit mehreren Boolean Werten steuern (https://www.delphipraxis.net/147828-property-visible-mit-mehreren-boolean-werten-steuern.html)

RWarnecke 17. Feb 2010 05:34


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:
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);
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 ?

Corpsman 17. Feb 2010 06:03

Re: Property "Visible" mit mehreren Boolean Werten
 
Zitat:

Delphi-Quellcode:
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);

Damit du
L_Demoversion siehst muss ysnDemoend = true und MietVers = false sein.

für alle anderen musst du beide auf False stellen.

hoika 17. Feb 2010 06:05

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

RWarnecke 17. Feb 2010 06:29

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.

himitsu 17. Feb 2010 06:42

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;

RWarnecke 17. Feb 2010 06:49

Re: Property "Visible" mit mehreren Boolean Werten
 
Zitat:

Zitat von himitsu
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.

Danke himitsu für Deine Antwort. habe wieder etwas dazu gelernt.

himitsu 17. Feb 2010 07:10

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:
( )   [die Klammern]
+ -    [die Vorzeichen]
not
* / mod and
or xor
+ -
praktisch wird von oben nach unten aufgelößt

und wenn etwas in der selben "Ebene" liegt, dann wird es im Ausdruck von links nach rechts verarbeitet

Jaynder 17. Feb 2010 08:51

Re: Property "Visible" mit mehreren Boolean Werten
 
Zitat:

Zitat von himitsu
ich glaub es war in etwa so

sorry, aber es hilft niemanden, wenn du Halbwissen postest. Unäres oder binaräre + und - sind dem Compiler völlig gleichgültig.
Rangfolge von Operatoren
  • @, not Erste (höchste)
  • *, /, div, mod, and, shl, shr, as Zweite
  • +, -, or, xor Dritte
  • =, <>, <, >, <=, >=, in, is Vierte (niedrigste)

aus: ms-help://borland.bds5/devcommon/expressions_xml.html

himitsu 17. Feb 2010 09:10

Re: Property "Visible" mit mehreren Boolean Werten
 
abgesehn von "or xor" und "+ -", welches getrennt war, lag ich doch garnicht soooo falsch :angel2:
Code:
Klammern ( )
Vorzeichen +, -
@, not
*, /, div, mod, and, shl, shr, as
+, -, or, xor
=, <>, <, >, <=, >=, in, is
Nja, aber dennoch hast'e Recht und vollständig/ganz richtig isses schon besser :thumb:

Jaynder 17. Feb 2010 09:51

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 21:29 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