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. windows 10添加定时任务

    1.在搜索栏搜索‘任务计划’ 2.选择任务计划程序,打开 3.创建基本任务 4.输入任务名称 5.选择任务触发周期 6.选择任务触发的具体时间点 7.选择任务需要做的事 8.选择启动程序后,选择具体的 ...

  2. 在Ubuntu上安装Redis MySQL MongoDB memcached Nginx

    1.安装Redis sudo apt-get install redis-server 2.安装MySQL sudo apt-get install mysql-server 3.安装MongoDB ...

  3. ASP.NET Core 2.0 MVC 发布部署--------- Ubuntun 16.04 X64 具体操作

    .Net Core 部署到Ubuntu 16.04 中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是服务 ...

  4. 防范SQL注入

    使用占位符的方式写查询语句hibernate

  5. Java显式锁学习总结之五:ReentrantReadWriteLock源码分析

    概述 我们在介绍AbstractQueuedSynchronizer的时候介绍过,AQS支持独占式同步状态获取/释放.共享式同步状态获取/释放两种模式,对应的典型应用分别是ReentrantLock和 ...

  6. 以Docker容器方式安装Ceph

    获取Ceph的Docker镜像 因为公司对于网络环境的限制,安装ceph时使用ceph-deploy反而很不方便,且ssh免密码方式也不适用,所以使用docker方式安装. Git地址 https:/ ...

  7. gym101431B

    以此纪念我都快忘了的后缀自动机(捂脸) 不过这题有两种做法: 用后缀自动机,先把原串再接遍中间加入特殊连接字符再把原串反接两遍,对这个新构造出的串做后缀自动机.(或者直接建立广义后缀自动机) 下面只要 ...

  8. open()函数文件操作

    open函数,该函数用于文件处理 操作文件时,一般需要经历如下步骤: (1)打开文件 (2)操作文件 一.打开文件     文件句柄 = open("文件路径","模式& ...

  9. python通过帐号和密码访问mysql

    数据库:test1  数据表:a1 用input输入姓名和密码,对了的话显示信息.不对的话显示error import pymysql import hashlib conn = pymysql.co ...

  10. HashMap碰撞问题

    HashMap是最常用的集合类框架之一,它实现了Map接口,所以存储的元素也是键值对映射的结构,并允许使用null值和null键,其内元素是无序的,如果要保证有序,可以使用LinkedHashMap. ...