Delphi条件编译时编译器的版本号

更早的版本忽略,我们从2006开始记录,相应的版本号判断方式:

VER180 : Delphi 10.0 CodeGear 2006/2007
VER185 : Delphi 11.0 CodeGear 2007
VER190 : Delphi 12.0 CodeGear 2008
VER200 : Delphi 13.0 CodeGear 2009
VER210 : Delphi 14.0 Embarcadero RAD Studio 2010
VER220 : Delphi 15.0 Embarcadero RAD Studio XE
VER230 : Delphi 16.0 Embarcadero RAD Studio XE2
VER240 : Delphi 17.0 Embarcadero RAD Studio XE3
VER250 : Delphi 18.0 Embarcadero RAD Studio XE4|
VER260 : Delphi 19.0 Embarcadero RAD Studio XE5
VER270 : Delphi 20.0 Embarcadero RAD Studio XE6
VER280 : Delphi 21.0 Embarcadero RAD Studio XE7
VER290 : Delphi 22.0 Embarcadero RAD Studio XE8
VER300 : Delphi 23.0 Embarcadero RAD Studio 10 Seattle
VER310 : Delphi 24.0 Embarcadero RAD Studio  10.1 Berlin
VER320 : Delphi 25.0 Embarcadero RAD Studio  10.2 Tokyo

{$IFDEF VERxxx}

代码

{$ELSE}

否则

{$ENDIF}

我们还可以直接判断版本号(RTLVersion)值的方式,注意是两位整数,象VER185要写成RTLVersion=18.5而不是185:

{$IF RTLVersion>=18}//2006+
代码
{$ELSE}
代码
{$IFEND}

注意不知道从什么版本开始IFEND就统一成ENDIF了,编译器会有警告,不过如果要和早期的版本兼容,可以打开下面的开关:

{$LEGACYIFEND ON}

就没有问题了。

分享到: