Autor Beitrag
lambruco
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100

Win 2000/2000 Server/XP
D6 Prof.
BeitragVerfasst: Fr 12.09.03 11:20 
Was ist ein LongBool ?? :shock:
Ist der Typ identisch mit boolean ?
Möchte eigentlich nur den Rückgabewert von EnumChildWindows ermitteln ?

_________________
Wer Rechtschreibfehler findet, kann Sie behalten
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Fr 12.09.03 12:04 
Also in meiner Windows-Unit steht BOOL = LONGBOOL;

Was ich damit sagen will: LONGBOOL = BOOL = BOOLEAN = TRUE / FALSE

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Fr 12.09.03 12:24 
DaRkFiRe hat folgendes geschrieben:
Was ich damit sagen will: LONGBOOL = BOOL = BOOLEAN = TRUE / FALSE

Nicht ganz.

Byte(Boolean(False)) = 0
Byte(Boolean(True)) = 1


Byte(BOOL(False)) = 0
Byte(BOOL(True)) <> 0 // hier liegt der Unterschied


Wer also direkt auf True prüft kann bei API Funktionen sein Wunder erleben.
ausblenden Delphi-Quelltext
1:
if APIFunction = True					

Muss nicht unbegingt True ergeben. Wenn APIFunction nun -1 oder 2 liefert ist das für BOOL auch TRUE. Jedoch wenn man es mit dem Boolean.True vergleicht macht der Compiler daraus ein
ausblenden Delphi-Quelltext
1:
if APIFunction = 1					

und das geht dann in die Hose.

Der Delphi-Compiler weiß von diesem Problem und wandelt Funktionsergebnisse, die vom Typ BOOL sind automatisch in den Boolean Typ um, womit es nicht zu obigem Problem kommen sollte.

_________________
Ist Zeit wirklich Geld?
lambruco Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 100

Win 2000/2000 Server/XP
D6 Prof.
BeitragVerfasst: Fr 12.09.03 13:41 
Heisst das, man sollte API-Funktionen immer auf false prüfen ??

also TRUE wäre dann API-Funktion <> FALSE ????

_________________
Wer Rechtschreibfehler findet, kann Sie behalten
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Fr 12.09.03 15:18 
Man kann
ausblenden Delphi-Quelltext
1:
if APIFunction then					

benutzen, da der Compiler dann auf <> False prüft. Wenn man aber implizit auf True prüft:
ausblenden Delphi-Quelltext
1:
if APIFunction = True then					

kann das nach hinten los gehen, muss aber nicht. Eben eine tickende Zeitbombe.

_________________
Ist Zeit wirklich Geld?