Is there a Delphi equivalent of the C# #if(DEBUG) compiler directive?
Apart from what lassevk said, you can also use a few other methods of compiler-evaluation (since Delphi 6, I believe) :
{$IF NOT DECLARED(SOME_SYMBOL)}
// Mind you : The NOT above is optional
{$ELSE}
{$IFEND}
To check if the compiler has this feature, use :
{$IFDEF CONDITIONALEXPRESSIONS}
There are several uses for this.
For example, you could check the version of the RTL; From the Delphi help :
You can use RTLVersion in $IF expressions to test the runtime library version level independently of the compiler version level.
Example: {$IF RTLVersion >= 16.2} ... {$IFEND}
Also, the compiler version itself can be checked, again from the code:
CompilerVersion is assigned a value by the compiler when the system unit is compiled. It indicates the revision level of the compiler features / language syntax, which may advance independently of the RTLVersion. CompilerVersion can be tested in $IF expressions and should be used instead of testing for the VERxxx conditional define. Always test for greater than or less than a known revision level. It's a bad idea to test for a specific revision level.
Another thing I do regularly, is define a symbol when it's not defined yet (nice for forward-compatiblity), like this :
{$IF NOT DECLARED(UTF8String)}
type
UTF8String = type AnsiString;
{$IFEND}
Hope this helps!