Delphi Compiler Error
E2012 Type of expression must be BOOLEAN
Reason for the Error & Solution
This error message is output when an expression serves as a condition and must therefore be of Boolean type. This is the case for the controlling expression of the if, while and repeat statements, and for the expression that controls a conditional breakpoint.
program Produce; var P: Pointer; begin if P then Writeln('P <> nil'); end.
Here, a C++ programmer just used a pointer variable as the condition of an if statement.
program Solve; var P: Pointer; begin if P <> nil then Writeln('P <> nil'); end.
In Delphi, you need to be more explicit in this case.