Zitat von
Muetze1:
Zitat von
Amateurprofi:
Zitat von
3_of_8:
Ein Boolean ist nichts anderes als ein Byte. Nur dass er normalerweise nur $00 oder $FF enthält.
Nein, $00 für False, $01 für True.
Sollte und nicht ist!
False = $00, True <> $00
Und nur so, kann man ordentlich arbeiten. Es gibt genug Dinge in der
VCL die
nicht eine $01 bei True zurück geben! Siehe auch die ständigen Hinweise zum = True Vergleich in If Abfragen.
Thomas,
das kann schon sein daß Funktionen bei unsauberer Programmierung für True etwas anderes als $01 zurückgeben,
aber das war hier nicht gefragt.
Die Frage war, was ein Boolean Wert ist, und unter Delphi ist für Boolean-Werte definiert 0=False und 1=True.
Die Tatsache, daß intern bei der Prüfung auf 0 geprüft wird und alles, was nicht 0 ist als True erkannt wird ändert nichts an dieser Definition. Es ist ja z.B. auch klar, daß 2 * 2 = 4 ist, und wenn jemand eine Multiplikations-Funktion so programmiert hat, daß sie für 2 * 2 als Resulttat 27 zurückgibt, dann ändert das auch nichts daran, daß 2 * 2 = 4 ist und bleibt.
Außerdem, wenn schon von unsauberer Programmierung die Rede ist : Es ist ja nicht ausgeschlossen, daß jemand eine Routine schreibt, in der er prüft ob ein als Boolean definierter Wert = 1 ist, und dann alles, was nicht 1 ist, als False interpretiert und dann ist Deine Aussage "und nur so kann man ordentlich arbeiten" nicht viel wert.