![]() |
Wahrheitswert nicht auf TRUE prüfen
Ich habe es hier schon irgendwo im Forum mal gelesne, warum man nicht auf TRUE prüfen soll. So ungefähr weiß ich es auch nicht, aber ich würde es gerne noch mal nachlesen. Nur mit der Suche nach [dp]true prüfen[/dp] findet man auch nichts richtiges. Bzw. es steht wohl irgendwo in den Threads drinne, nur ist ein einzelner Beitrag kaum zu finden, wenn man nicht alle Threads durchgucken will.
Weiß jemand, wo es genau steht, bzw. kann es noch mal genau erklären? |
Re: Wahrheitswert nicht auf TRUE prüfen
reichts dir auch in kurz und knapp?
TRUE = Boolean(1), FALSE = Boolean(0). Wenn du also auf =true oder =false prüfst, müssen genau diese werte vorliegen. Dagegen ist alles außer 0 als true definiert und die 0 als false. wenn du nur mit "if somebool then" prüfst, werden also auch alle anderen werte korrekt interpretiert (ein Boolean wird ja heutzutage meist in einem Byte oder einem Word untergrbacht). |
Re: Wahrheitswert nicht auf TRUE prüfen
Hm, soweit wußte ich es auch. Aber ich meine, ich hätte es noch irgendwo ausführlicher gelesen. :gruebel:
|
Re: Wahrheitswert nicht auf TRUE prüfen
ja klar... mit ausführlichen codebeipsielen, dem verhalten aller möglicher verschiedener konstellationen etc... aber den thread find ich hier jetzt auch nicht.
|
Re: Wahrheitswert nicht auf TRUE prüfen
Zitat:
Das ist genau das Problem hinter direkten Vergleichen auf true/false, viel mehr zu sagen gibt's da nicht, außer vllt. dass blabla = true ziemlich morkelig aussieht. ;) |
Re: Wahrheitswert nicht auf TRUE prüfen
OK, dann gebe ich mich damit erstmal zufrieden.
|
Re: Wahrheitswert nicht auf TRUE prüfen
Ich hab mal in der Tutorial-Sparte nach "Boolean" gesucht, war eines der oberen Ergebnisse :stupid:
![]() MfG Julian |
Re: Wahrheitswert nicht auf TRUE prüfen
Ups, da habe ich natürlich nicht gesucht, weil ich nicht damit gerechnet habe, dass es dazu sogar ein Tutorial gibt. Besten Dank. Werde ich mir zu Hause mal in Ruhe durchlesen.
|
AW: Wahrheitswert nicht auf TRUE prüfen
Hallo zusammen,
ich grabe das Thema mal wieder aus, da ich gerade einfach auf dem Schlauch stehe. Was ist denn wenn ich nur etwas machen will wenn der Wert true ist? soll man dann
Code:
tippen?
if not (not varBoolean) then
Sorry, ich verstehs gerade nicht. |
AW: Wahrheitswert nicht auf TRUE prüfen
Kurz und knackig:
Delphi-Quellcode:
if VarBoolean then
|
AW: Wahrheitswert nicht auf TRUE prüfen
Danke, dann passt ja alles ;-)
Man soll also einfach das "= true" weglassen, kann jedoch die variable durchaus auf true prüfen. Gruß |
AW: Wahrheitswert nicht auf TRUE prüfen
Wenn Du mit true zutreffend (und nicht die Konstante) meinst, richtig.
|
AW: Wahrheitswert nicht auf TRUE prüfen
Es dürfte zwar alles geklärt sein, aber trotzdem will ich noch auf dieses Tutorial hinweisen:
![]() Ist im Prinzip das Gleiche nur die Beispiele sind etwas kürzer und allgemein wird noch was zu Boolean erklärt. Nur der Vollständigkeit halber ;) |
AW: Wahrheitswert nicht auf TRUE prüfen
Zitat:
Genau - man muss sich nur merken, dass if-then-else/if-then immer selbst auf True prüft. Ansonsten könnte man Ausdrücke wie "a > b" nicht auswerten. Niemand schreibt da ja noch ein "= true" hinter. Wenn man also "= true" benutzt, dann prüft man quasi doppelt auf true. Der Fehler tritt dann auf, wenn die Konstante True ungleich des Rückgabewerts ist, da True als Konstante nur einen Wert (1) hat, aber True laut Definition auch alle Werte ungleich 0 sein kann. Was ja auch bei 2 der Fall wäre und es ist klar, dass 1 <> 2 ist. |
AW: Wahrheitswert nicht auf TRUE prüfen
Zitat:
Zitat:
|
AW: Wahrheitswert nicht auf TRUE prüfen
Grund: False ist als 0 und True als <> 0 deklariert. Deshalb ist True nicht immer True!
In Delphi ist True 1 (Komplement in 8. Bit) und in C (Windows-API) ist True = -1 (11111111; Komplement in aller 8 Bits) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz