{ Define flags for different Delphi versions }
{$IFDEF VER120} { Delphi 4 }
{$DEFINE DELPHI4}
{$DEFINE DELPHI4_UP}
{$ENDIF}
{$IFDEF VER130} { Delphi 5 }
{$DEFINE DELPHI4_UP}
{$DEFINE DELPHI5_UP}
{$ENDIF}
{$IFDEF CONDITIONALEXPRESSIONS} { Delphi 6+ }
{$IF CompilerVersion >= 14.0} { Delphi 6+ }
{$DEFINE DELPHI4_UP}
{$DEFINE DELPHI5_UP}
{$DEFINE DELPHI6_UP}
{$IFEND}
{$IF CompilerVersion >= 15.0} { Delphi 7+ }
{$DEFINE DELPHI7_UP}
{$IFEND}
{$IF CompilerVersion >= 22.0} { Delphi XE+ }
{$DEFINE DELPHIXE_UP}
{$ENDIF}
{$ENDIF}
Or here is an alternate version with HAS_UNIT_CONTNRS instead of DELPHI5_UP which would support FPC/Delphi dual support more cleanly:
~~~~~~~~~~~~
{ Define flags for different Delphi versions }
{$IFDEF VER120} { Delphi 4 }
{$DEFINE DELPHI4}
{$ENDIF}
{$IFDEF VER130} { Delphi 5 }
{$DEFINE HAS_UNIT_CONTNRS}
{$ENDIF}
{$IFDEF CONDITIONALEXPRESSIONS} { Delphi 6+ }
{$IF CompilerVersion >= 14.0} { Delphi 6+ }
{$DEFINE HAS_UNIT_CONTNRS}
{$IFEND}
{$IF CompilerVersion >= 15.0} { Delphi 7+ }
{$DEFINE DELPHI7_UP}
{$IFEND}
{$IF CompilerVersion >= 22.0} { Delphi XE+ }
{$DEFINE DELPHIXE_UP}
{$ENDIF}
{$ENDIF}
{$IFDEF FPC}
{$DEFINE HAS_UNIT_CONTNRS}
~~~~~~~~
{$ENDIF}