Zitat von
himitsu:
da muß man aufpassen
True (die Konstante):
BOOL (c) = LongBool (delphi) = -1 = $FFFFFFFF
WordBool (delphi) = -1 = $FFFF
bool (c) = ByteBool (delphi): -1 = $FF
Boolean (Delphi): 1 = $01
True (bei booleanischen Vergleichen):
alles: b<>0
True (bei binärischen Vergleichen):
alles: b=Wert
darum ist auch b=True so fartal, da dort wirklich geprüft wird, ob b genau dem True entspricht
False (die Konstante und bei Vergleichen):
alles: b=0
Joar genau, aber rein theoretisch müsste das ja klappen
Wenn auch nicht gerade sprachübergreifend sicher
Zitat von
Dax:
Um es schön in einer Zeiler zu halten, mit dem Wissen, dass Boolean = equivalent XNOR:not ((not ((S1 = '') xor (S2 = ''))) xor (S3 = ''))
Aber das wird nicht funktionieren: Und zwar nimmst du nicht beim Vergleich zu S3 nicht mit rüber, wie S1/S2 aussahen: S1 und S2 != '' und S3 = '' -> True, da ja S1 und S2 = '' genau gleich sind beim innersten Vergleich.
Zitat von
himitsu:
i hab's jetzt
Delphi-Quellcode:
if not (((S1 = '') xor (S2 = '')) or ((S1 = '') xor (S3 = ''))) then
// oder
if not (((S1 <> '') xor (S2 <> '')) or ((S1 <> '') xor (S3 <> ''))) then
Sieht interessant aus
Zitat von
himitsu:
[...]also so Schlimm ist dann ein Vergleich via = oder <> garnicht
Nein aber das holen des Wertes dauert schon, wobei ich da mal wieder zu pingelig bin.
Und es hört sich so schön an:
Result := ((S1 = '') = (S2 = '') = (S3 = ''))
Nun da ich eh die Werte zwischenspeichern "muss", werde ich himitsus letzte Variante nehmen.
MfG
xZise