Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Wahrheitswert nicht auf TRUE prüfen (https://www.delphipraxis.net/77893-wahrheitswert-nicht-auf-true-pruefen.html)

Luckie 26. Sep 2006 14:07


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?

DGL-luke 26. Sep 2006 14:12

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).

Luckie 26. Sep 2006 14:17

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:

DGL-luke 26. Sep 2006 14:21

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.

Elvis 26. Sep 2006 14:23

Re: Wahrheitswert nicht auf TRUE prüfen
 
Zitat:

Zitat von Luckie
Hm, soweit wußte ich es auch. Aber ich meine, ich hätte es noch irgendwo ausführlicher gelesen. :gruebel:

Wenn du Luke nett fragst kann er sicher seinen Text 5-mal untereinanderkopieren... :mrgreen:
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. ;)

Luckie 26. Sep 2006 14:34

Re: Wahrheitswert nicht auf TRUE prüfen
 
OK, dann gebe ich mich damit erstmal zufrieden.

Ultimator 26. Sep 2006 15:15

Re: Wahrheitswert nicht auf TRUE prüfen
 
Ich hab mal in der Tutorial-Sparte nach "Boolean" gesucht, war eines der oberen Ergebnisse :stupid:
http://www.delphipraxis.net/internal...ct.php?t=68256

MfG Julian

Luckie 26. Sep 2006 15:22

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.

Darlo 26. Mär 2012 12:44

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:
if not (not varBoolean) then
tippen?

Sorry, ich verstehs gerade nicht.

DeddyH 26. Mär 2012 12:46

AW: Wahrheitswert nicht auf TRUE prüfen
 
Kurz und knackig:
Delphi-Quellcode:
if VarBoolean then

Darlo 26. Mär 2012 12:50

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ß

DeddyH 26. Mär 2012 12:52

AW: Wahrheitswert nicht auf TRUE prüfen
 
Wenn Du mit true zutreffend (und nicht die Konstante) meinst, richtig.

FlatIron 26. Mär 2012 12:54

AW: Wahrheitswert nicht auf TRUE prüfen
 
Es dürfte zwar alles geklärt sein, aber trotzdem will ich noch auf dieses Tutorial hinweisen:
http://www.delphi-treff.de/tutorials...ine-variablen/

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 ;)

FlatIron 26. Mär 2012 13:00

AW: Wahrheitswert nicht auf TRUE prüfen
 
Zitat:

Zitat von Darlo (Beitrag 1158611)
Danke, dann passt ja alles ;-)
Man soll also einfach das "= true" weglassen, kann jedoch die variable durchaus auf true prüfen.

Gruß


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.

Sir Rufo 26. Mär 2012 13:03

AW: Wahrheitswert nicht auf TRUE prüfen
 
Zitat:

Zitat von Darlo (Beitrag 1158609)
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:
if not (not varBoolean) then
tippen?

Sorry, ich verstehs gerade nicht.

Komisch, da hat doch Ultron einen Link mitgegeben, wo alles erklärt wird.
Zitat:

Zitat von Ultimator (Beitrag 529945)
Ich hab mal in der Tutorial-Sparte nach "Boolean" gesucht, war eines der oberen Ergebnisse :stupid:
http://www.delphipraxis.net/internal...ct.php?t=68256

MfG Julian


mkinzler 26. Mär 2012 13:12

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 09:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz