Laden...

Logische UND-Verknüpfung

Erstellt von chriss_2oo4 vor 14 Jahren Letzter Beitrag vor 14 Jahren 5.262 Views
C
chriss_2oo4 Themenstarter:in
103 Beiträge seit 2007
vor 14 Jahren
Logische UND-Verknüpfung

Hi,

ich habe ein Problem mit einer logischen UND-Verknüpfung. Das Problem liegt darin, dass ich Prüfen möchte, ob ein Text in eine
Textbox eingegeben wurde UND ob die Hintergrundfarbe der Textbox NICHT weiß ist. Mein erster Ansatz lautet wie folgt:

if(txt.Text.Length > 0 &&
(txt.BackColor.R != 255 && txt.BackColor.G != 255 && txt.BackColor.B != 255))

ist aber logisch, dass es nicht funktioniert, da es ja auch möglich ist, dass R ODER G ODER B 255 sein kann und somit die
Bedingung nicht erfüllt ist. Wie kann ich prüfen, ob wirklich ALLE drei Werte 255 sind?

Beste Grüße
Chriss

U
105 Beiträge seit 2004
vor 14 Jahren

Prüfen, ob die Hintergrundfarbe nicht weiß ist, könntest du auch so:

if (txt.BackColor != Color.White)
{
}
C
chriss_2oo4 Themenstarter:in
103 Beiträge seit 2007
vor 14 Jahren

Hi,

das hab ich natürlich schon versucht und es funktioniert leider nicht.
Ich gehe mal davon aus, dass in einem Color Objekt noch weitere relevante Daten
gespeichert sind, die zum Vergleich hinzugezogen werden.

Ich könnte natürlich auch alle drei zusammenzählen und prüfen ob 765 dabei raus kommt,
allerdings würde ich gerne wissen (rein interessehalber), wie ich das mit dem o. g. Ansatz lösen kann.

Beste Grüße
Chriss

N
22 Beiträge seit 2007
vor 14 Jahren

== ueberprueft aber noch Zustandsflags.
Siehe Color.Equality-Operator

Am besten waere daher:


if (txt.BackColor.ToArgb() != Color.White.ToArgb())

Das macht die Sache auch leserlicher, im Gegensatz zur Variante mit den Zahlenwerten. 😉

Ansonsten:
!(txt.BackColor.R == 255 && txt.BackColor.G == 255 && txt.BackColor.B == 255)

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo chriss_2oo4,

sowas kann man sich nun wirklich leicht selbst überlegen. Du willst herausfinden, ob es nicht der Fall ist, dass alle drei Werte gleich 255 sind.

!(txt.BackColor.R == 255 && txt.BackColor.G == 255 && txt.BackColor.B == 255)

oder was das gleiche ist, dass mindestens einer der Werte ungleich 255 ist, also der erste, der zweite (inklusiv-)oder der dritte ungleich 255 ist.

(txt.BackColor.R != 255 || txt.BackColor.G != 255 || txt.BackColor.B != 255)

Sowas muss man aus dem FF können, selbst wenn man mitten in der Nacht geweckt wird.

herbivore