Genau deswegen macht man auch nicht
if B = True then
, denn hier wird nicht nach booleschen, sondern nach ordinalen Regeln verglichen.
Und ja, man kann daher wirklich dem Typ Boolean mehrere Werte zuweisen.
Delphi-Quellcode:
var
B: Boolean;
B := Boolean(2);
if B then
ShowMessage('Ja');
if not B then
ShowMessage('Nein');
if B then
ShowMessage('Ja')
else
ShowMessage('Nein');
if B = True then
ShowMessage('Ja')
else if B = False then
ShowMessage('Nein')
else
ShowMessage('Vielleicht'); // :D