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

{$ifend}

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:

Compiler CompilerVersion

Defined Symbol

Delphi XE5 26 VER260
Delphi XE4 25 VER250
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

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

Product Name Version

Conditional Define

CompilerVersion
Embarcadero RAD Studio XE5 19.0 VER260 26
Embarcadero RAD Studio XE4 18.0 VER250 25
Embarcadero RAD Studio XE3 17.0 VER240 24
Embarcadero RAD Studio XE2 16.0 VER230 23
Embarcadero RAD Studio XE 15.0 VER220 22
Embarcadero RAD Studio 2010 14.0 VER210 21
CodeGear C++ Builder 2009 12.0 VER200 20
CodeGear Delphi 2007 for .NET 11.0 VER190 19?
CodeGear Delphi 2007 for Win32 11.0 VER180 and VER185 18, 18.5
Borland Developer Studio 2006 10.0 VER180 18
Borland Delphi 2005 9.0 VER170 17
Borland Delphi 8 for .NET 8.0 VER160 * 16
C++BuilderX  ?  ?  
Borland C#Builder 1.0 VER160 *  
Borland Delphi 7 7.0 VER150 15
Borland Kylix 3 3.0 VER140 **  
Borland C++Builder 6  ? VER140 **(!!)  
Borland Kylix 2 2.0 VER140 **  
Borland Delphi 6 6.0 VER140 ** 14
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).

**** CompilerVersion (Delphi 6 or later) can be used with conditional directives like

{$IF CompilerVersion >= 20}  {$DEFINE CanUnicode}  {$IFEND}

or using code:

if System.CompilerVersion >= 22 then  <do something>;

Delphi CompilerVersion Constant / Compiler Conditional Defines的更多相关文章

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

    http://delphi.wikia.com/wiki/CompilerVersion_Constant The CompilerVersion constant identifies the in ...

  2. Delphi For Linux Compiler

    Embarcadero is about to release a new Delphi compiler for the Linux platform. Here are some of the k ...

  3. Delphi 版本号(D1到XE6),发现一个delphi.wikia.com网站

    Borland Compiler Conditional Defines  Edit  Talk1 2,909PAGES ONTHIS WIKI   Product Name Version Cond ...

  4. Delphi 项目配置选项

    打开项目设置窗口: 通过菜单:项目>选项 快捷键    :Shift+Ctrl+F11 Delphi编译器选项说明  Conditional defines 指定条件编译器指令中引用的符号. O ...

  5. 最新的Delphi版本号对照

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

  6. Delphi的命令行编译命令

    Borland出品的Delphi,有着闪电般的编译速度,但是在界面控件使用较多.工程项目较大的时候,编译一个工程仍需要一段时间,打开庞大的Delphi IDE,也需要时间.其实,在一个工程开发结束,调 ...

  7. [Delphi] Delphi版本号对照

    VER300    Delphi Seattle / C++Builder Seattle    23    230    (Delphi:Win32/Win64/OSX/iOS32/iOS64/An ...

  8. Delphi 项目 结构 文件夹 组织

    Delphi Project Structure Folder Organization http://delphi.about.com/od/delphitips2008/qt/project_la ...

  9. [Delphi]编译条件

    当软件在多个DELPHI版本下编译时,需要处理各版本的不同情况,使用编译条件技术实现. 万一博客,编译指令基础使用介绍:http://www.cnblogs.com/del/category/1686 ...

随机推荐

  1. JavaScript 去字符串空格

    JavaScript 去字符串空格 (利用正则) # str为要去除空格的字符串: # 去除所有空格: str = str.replace(/\s+/g,""); # 去除两头空格 ...

  2. python tornado 中使用 flash消息闪现

    1.html 中引入文件 {% block head %} <link href="/static/common/sweetalert/sweetalert.css" rel ...

  3. strptime和strptime函数理解

    #include <stdio.h> #include <time.h> int main() { struct tm tm; char buf[255]; strptime( ...

  4. python之pandas&&DataFrame

    1.Series  Series是一个一维数组 pandas会默认从0开始作为Series的index >>> test = pd.Series(['num0','num1','nu ...

  5. bitbucket SSH 生成

    在bitbucket设置ssh的方法: 1.运行ssh-keygen. 2.一路enter,直接到结束. 3 seeting 中Bitbucket选择.ssh/id_rsa.pub文件

  6. 不修改系统日期和时间格式,解决Delphi报错提示 '****-**-**'is not a valid date and time

    假如操作系统的日期格式不是yyyy-MM-dd格式,而是用strtodate('2014-10-01')) 来转换的话,程序会提示爆粗 '****-**-**'is not a valid date ...

  7. css3代码整理—弹性盒子篇

    父级使用弹性盒子: #fu{ display:flex; } 父级中子级的对齐方式: 1.水平对齐方式:两端对齐 #fu { display:flex; justify-content:space-b ...

  8. s12-day04-work01 简单计算器功能实现

    代码: #!/usr/local/env python3 ''' Author:@南非波波 Blog:http://www.cnblogs.com/songqingbo/ E-mail:qingbo. ...

  9. 如何让EasyUI弹出层跳出框架

    这个的解决方法其实挺简单的. 只要在最外面的框架页面加个div,然后用parent.div的id就可以的.但是必须得弹出框得是一个页面. <div id="div_info" ...

  10. 【LOJ】 #2015. 「SCOI2016」妖怪

    题解 这道题教会我很多东西,虽然它是个傻逼三分 1.long double的运算常数是巨大的 2.三分之前的界要算对!一定要算准,不要想一个直接写上! 3.三分100次也就只能把精度往里推20多位,可 ...