Delphi CompilerVersion Constant / Compiler Conditional Defines
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的更多相关文章
- 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 ...
- Delphi For Linux Compiler
Embarcadero is about to release a new Delphi compiler for the Linux platform. Here are some of the k ...
- Delphi 版本号(D1到XE6),发现一个delphi.wikia.com网站
Borland Compiler Conditional Defines Edit Talk1 2,909PAGES ONTHIS WIKI Product Name Version Cond ...
- Delphi 项目配置选项
打开项目设置窗口: 通过菜单:项目>选项 快捷键 :Shift+Ctrl+F11 Delphi编译器选项说明 Conditional defines 指定条件编译器指令中引用的符号. O ...
- 最新的Delphi版本号对照
The CompilerVersion constant identifies the internal version number of the Delphi compiler. It is de ...
- Delphi的命令行编译命令
Borland出品的Delphi,有着闪电般的编译速度,但是在界面控件使用较多.工程项目较大的时候,编译一个工程仍需要一段时间,打开庞大的Delphi IDE,也需要时间.其实,在一个工程开发结束,调 ...
- [Delphi] Delphi版本号对照
VER300 Delphi Seattle / C++Builder Seattle 23 230 (Delphi:Win32/Win64/OSX/iOS32/iOS64/An ...
- Delphi 项目 结构 文件夹 组织
Delphi Project Structure Folder Organization http://delphi.about.com/od/delphitips2008/qt/project_la ...
- [Delphi]编译条件
当软件在多个DELPHI版本下编译时,需要处理各版本的不同情况,使用编译条件技术实现. 万一博客,编译指令基础使用介绍:http://www.cnblogs.com/del/category/1686 ...
随机推荐
- Docker practice
Docker 实践 目标 创建一个基于最新版Ubuntu的镜像,在该镜像中更新apt包源并安装NTP package,最后将该新镜像提交到本地私有的registry中. 本地创建私有Registry ...
- spring集成swagger
随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.前后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远. 前端和后端的唯一联系,变成了API接口:API文档变成了 ...
- Geoserver WFS跨域设置
测试版本为geoserver2.11.0. 两种方法都可以实现跨域设置: 第一种: 下载跨域jar包jetty-servlets.jar(下载geoserver使用的对应jetty版本——可以查看&l ...
- 很好的开源UI框架Chico UI
介绍一个很好的开源的UI框架,依赖于jquery 官网:http://www.chico-ui.com.ar/ 以下是相关截图: 消息提示 自动完成 分页,列表 Chico UI是什么? Chico ...
- 9 行 javascript 代码获取 QQ 群成员
昨天看到一条微博:「22 行 JavaScript 代码实现 QQ 群成员提取器」. 本着好奇心点击进去,发现没有达到效果,一是 QQ 版本升级了,二是博客里面的代码也有些繁琐. 于是自己试着写了一个 ...
- Java线程池使用和常用参数(待续)
线程池怎么实现的,核心参数讲一讲? Executors是线程池的工厂类,通过调用它的静态方法如下: Executors.newCachedThreadPool(); Executors.newFixe ...
- c++ getline()
#include <iostream>#include <string> int main (){ std::string name; std::cout << & ...
- 基于rsync方式的文件备份
rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服 务器,以实现文件传输.备份和镜像.相对ta ...
- JavaWeb 之 AJAX
Ajax ajax:AJAX 是与服务器交换数据的艺术,它在不重载全部页面的情况下,实现了对部分网页的更新 AJAX:Asynchronous JavaScript and XML,异步 javasc ...
- JSP中常用JSTL用法
使用标签时,需要在jsp文件头加入以下代码: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/cor ...