Hier wurde jetzt mal absichtlich ein "defekter" Boolean-Wert erzeugt.
Rein logisch entspricht er einem TRUE, also müßte die Meldung für "b" und "b = true" erscheinen.
Delphi-Quellcode:
var b: Boolean;
begin
b := Boolean(3);
if b then ShowMessage('b');
if not b then ShowMessage('not b');
if b = false then ShowMessage('b = false');
if b = true then ShowMessage('b = true');
if b <> false then ShowMessage('b <> false');
Wie aber jeder selber testen kann, erscheint b=true nicht.
PS:
Delphi-Boolean: True=1 ($01)
Windows-Boolean: True=-1 (boolaka ByteBool = $ff und BOOL aka LongBool = $ffffffff)
> das sind die Werte der Konstanten, aber was die Variablen betrifft...
rein logisch bedeutet TRUE gleich b<>0 und nicht b=irgendwas
zu Diesem
Zitat:
if x = y then b := true else b := false;
jupp, falsch ist es nicht ... nur halt manchmal etwas umständlich und manchmal nicht
Delphi-Quellcode:
if x = y then Label1.Visible := true else Label1.Visible := false;
if x = y then Label1.Show else Label1.Hide;
PS: das ist wie
x := x + 10;
oder
Inc(x, 10);
Beides ist richtig.