Einzelnen Beitrag anzeigen

Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
  Alt 29. Nov 2002, 13:13
Die Definition von Boolean erlaubt theoretisch nur zwei Werte: True und False.

Der Vergleich mit False klappt immer, da False als Null (0) definiert ist. Ein Vergleich mit True kann fehlschlage. Die Konstante True ist als -1 ($FFFFFF) definiert. In der Logik ist True jedoch als (not False) definiert und kann jeden Wert ungleich Null (0) annehmen. Da Boolean seit der 32bit Variante von Delphi, intern eine 32bit Variable ist, kann es also theoretisch 2^32-1 verschieden True Werte geben - die Konstante True ist jedoch definiert als (-1). Daraus ergeben sich 2^32-2 mögliche True-Werte die im Vergleich mit der Konstante True verloren gehen.

Bestes Beispiel ist VB - die Checkbox dort, kann im Wert Checked weder True noch False sein, wenn man diese genauso vergleicht - und deren State cbGrayed ist. Gleiches kann theoretisch (selten praktisch) auch in Delphi geschehen.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat