Ich habe keine Ahnung davon, sondern probiere aus:
Code:
A:=0. b := Bool(A) := FALSE. b1=true? FALSE b1=false? TRUE
A:=1. b := Bool(A) := TRUE. b1=true? TRUE b1=false? FALSE
A:=2. b := Bool(A) := TRUE. b1=true? FALSE b1=false? FALSE
A:=3. b := Bool(A) := TRUE. b1=true? FALSE b1=false? FALSE
A:=FF. b := Bool(A) := TRUE. b1=true? FALSE b1=false? FALSE
Also... ähm. Bool(0) = false, alles andere ist true.... Aber dann... gilt manchmal eben auch: true <> true. Boolean(2) ist z.B. so ein Fall, aber eben auch Boolean(255).
Weswegen es -alter Hut- wirklich
bescheuertnicht zu empfehlen ist, eine bool'schen Wert auf =TRUE abzufragen. Denn, wie auch schon 1024x erwähnt, gibt es durchaus Routinen (
API), die eben nicht nur 0 und 1 liefern, sondern z.B. -1 (also FF). Und daher sollte man eben nur 'If Resultat then' schreiben, denn das klappt auch bei Bool(255).
Ein Variant ist übrigens kein bool'scher Wert und wenn ich einen Variant auf einen Bool'schen Wert abfragen will, dann konvertiere ich vorher sicher, denn ansonsten knallt mir der Vergleich irgendwann um die Ohren (wenn der Variant z.B. ein Array beinhaltet). Und wenn ich schon sicher konvertiere, kann ich mir die Abfrage auf '=True' auch sparen.