Mega Code Archive

 
Categories / Delphi / API
 

External function failure when passing boolean parms

Question: Why do some external functions fail when passed a boolean parameter of True? Answer: In Delphi 3, the value "True" for data types ByteBool, WordBool, and LongBool is now represented as -1 for compatibility with Microsoft Visual Basic. Note that many compilers represent "True" as either non-zero or a positive 1. When passing values to non Visual Basic applications, you should consider using the following technique to avoid incompatibilities: LongBool(Abs(True)); When accepting boolean values from any external source, you should always test against the value "False". The following technique should always work, since the value for false is always zero: if BoolValPassed <> False then DoSomething.