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 ...
随机推荐
- Loadrunner下WebTours系统自带的用户名和密码
打开:http://127.0.0.1:1080/WebTours/ 系统默认自带两个用户名和密码,位于~\WebTours\MercuryWebTours\users: 1.用户名:joe,密码:y ...
- Ubuntu每次开机后提示:检测到系统程序出现问题的解决方法
首先,错误报告存放位置: cd /var/crash/ ls //可以查看错误报告 1 2 sudo rm /var/crash/* //删除该目录下的所有文件 1 但是,这只是删除掉的是错误报告,如 ...
- java版云笔记(二)
云笔记 基本的环境搭建好了,今天做些什么呢,第一是链接数据库(即搭建Spring-Batistas环境),第二是登录预注册. 注:这个项目的sql文件,需求文档,需要的html文件,jar包都可以去下 ...
- 转:google测试分享-SET和TE
原文: http://blog.sina.com.cn/s/blog_6cf812be0102vbnb.html 前端时间看了google测试之道,收获了一些,在此总结下并打算写一个系列blog,顺 ...
- 登陆记录utmp wtmp
/var/log/wtmp文件的作用 /var/log/wtmp也是一个二进制文件,记录每个用户的登录次数和持续时间等信息. 查看方法: 可以用last命令输出当中内容: debian ...
- CircleIndicator
dependencies { compile 'com.nineoldandroids:library:2.4.+' compile 'me.relex:circleindicator:1.0.0@a ...
- Geoffrey Hinton获得IEEE的麦克斯韦奖的颁奖辞
2016年6月IEEE的麦克斯韦奖颁发给了机器学习的领军人物Geoffrey Hinton.颁奖辞十分优雅,同时简洁.凝练地解释了机器学习的最新进展以及神经网络的崛起.我忍不住翻译了一下. 颁奖辞 G ...
- 二十三 使用@property
在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 这显然不合逻辑.为了限制score的范围,可以 ...
- markdown在list或者引用之后怎么去重新令其一段
多打一个空格,虽然这个方法简单的要是,但是我就是没有想到,真是尴尬到奶奶家啦!
- Wannafly挑战赛7 C - 小Q与氪金游戏
题目描述 “为世界上所有的美好而战!”小Q同学最近沉迷“稳固3”,为了从最新的蛋池中抽出自己喜欢的角色卡,不惜氪下重金.在这个游戏中,氪一单可以得到x个宝石,而抽一次卡需要花费y个宝石,由于游戏策划十 ...