Delphi CompilerVersion Constant

http://delphi.wikia.com/wiki/CompilerVersion_Constant

The CompilerVersion constant identifies the internal version number of the Delphi compiler.

It is defined in the System unit and may be referenced either in code just as any other constant:

if CompilerVersion = 20 then
    sCompilerName := 'Delphi 2009';

or in conditional compiler expressions:

{$if CompilerVersion > 18} 
// Delphi 2007 or later 
{$endif}

The CompilerVersion constant was introduced in Delphi 6 along with conditional expressions.

In earlier Delphi versions various compiler defined VERxxx symbols are used to determine compiler versions.

CompilerVersion values and the equivalent compiler defined symbols

for the Delphi versions in which the CompilerVersion constant is defined are:

CompilerCompilerVersion

Defined Symbol

Delphi XE3 24 VER240
Delphi XE2 23

VER230

Delphi XE 22 VER220
Delphi 2010 21 VER210
Delphi 2009 20 VER200
Delphi 2007 .NET 19 VER190
Delphi 2007 18.5 VER185
Delphi 2006 18 VER180
Delphi 2005 17 VER170
Delphi 8 .NET 16 VER160
Delphi 7 15 VER150
Delphi 6 14 VER140
Delphi 5 13 VER130
Delphi 4 12 VER120
Delphi 3 10 VER100
Delphi 2 9 VER90
Delphi 1 8 VER80

  

Borland Compiler Conditional Defines

http://delphi.wikia.com/wiki/Borland_Compiler_Conditional_Defines

Product NameVersion

Conditional Define

Embarcadero RAD Studio XE3 17.0 VER240
Embarcadero RAD Studio XE2 16.0 VER230
Embarcadero RAD Studio XE 15.0 VER220
Embarcadero RAD Studio 2010 14.0 VER210
CodeGear C++ Builder 2009 12.0 VER200
CodeGear Delphi 2007 for .NET 11.0 VER190
CodeGear Delphi 2007 for Win32 11.0 VER180 and VER185
Borland Developer Studio 2006 10.0 VER180
Borland Delphi 2005 9.0 VER170
Borland Delphi 8 for .NET 8.0 VER160 *
C++BuilderX  ?  ?
Borland C#Builder 1.0 VER160 *
Borland Delphi 7 7.0 VER150
Borland Kylix 3 3.0 VER140 **
Borland C++Builder 6  ? VER140 **(!!)
Borland Kylix 2 2.0 VER140 **
Borland Delphi 6 6.0 VER140 **
Borland Kylix 1.0 VER140 **
Borland C++Builder 5  ? VER130 ***
Borland Delphi 5 5.0 VER130 ***
Borland C++Builder 4  ? VER125
Borland Delphi 4 4.0 VER120
Borland C++Builder 3  ? VER110 ****
Borland Delphi 3 3.0 VER100
Borland C++ 5  ?  ?
Borland C++Builder 1  ? VER93
Borland Delphi 2 2.0 VER90
Borland C++ 4.5  ?  ?
Borland Delphi 1.0 VER80
Borland C++ 4  ?  ?
Borland Pascal 7 7.0 VER70
Borland C++ 3.1  ?  ?
Turbo Pascal for Windows 1.5 1.5 VER70
Turbo C++ for DOS 3  ?  ?
Borland C++ 3  ?  ?
Turbo C++ for Windows 3 (Win16)  ?  ?
Turbo Pascal for Windows 1.0 1.0  ???
Borland C++ 2  ?  ?
Turbo Pascal 6 6.0 VER60
Turbo C++ for DOS  ?  ?
Turbo C for DOS 2  ?  ?
Turbo Pascal 5.5 5.5 VER55
Turbo C for DOS 1.5  ?  ?
Turbo Pascal 5 5.0 VER50
Turbo Pascal 4 4.0 VER40
Turbo C for DOS  ?  ?
Turbo Pascal 3 3.0  ???
Turbo Pascal 2 2.0  ???
Turbo Pascal 1 1.0  ???

* This conditional define is shared by the Delphi compilers

used to build C#Builder 1 and Delphi 8, which do not natively support Delphi for Win32.

This define is used in the "IDE Integration Packs" that were released to Borland partners in order to allow IDE plugins like ModelMaker Code Explorer (http://www.modelmakertools.com/code-explorer/index.html) and Castalia (http://www.delphi-expert.com/castalia3) to be compiled.


** This conditional define is shared between C++Builder 6, Delphi 6, Kylix 1, 2, and 3

(Checking for the conditional define "LINUX" helps to determine whether the compiler is

Kylix or Delphi and "BCB" can be used to determine if C++Builder is being used).


*** This conditional define is shared with C++Builder 5


**** C++Builder 3.0 used VER110 (it had its own version of the Delphi compiler included).


原文地址:https://www.cnblogs.com/shangdawei/p/3048073.html