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 ...
随机推荐
- UVALive 5760 Alice and Bob
题意是黑板上有n个数\(S_i\).每次操作可以把其中一个数减1或者将两个数合并为一个数.一个数变为0时,则不能再对其操作. 思路是发现最大的可操作次数为\( \sum S_i\)+(n - 1).\ ...
- java的loadrunner脚本案例
/* * LoadRunner Java script. (Build: 670) * * ״̬£º²¢·¢²âÊÔͨ¹ý * ²âÊÔÈË£ºÕÔС±ò * ÈÕÆÚ£º2013-09-2 ...
- 统计学习方法三:K近邻
一.什么是K近邻? K近邻是一种基本的分类和回归方法. 在分类时,对新的实例,根据其K个最近邻的训练实例的类别,通过多数表决权等方式预测其类别. 通俗的讲,找K个和其关系最近的邻居,哪个类别的邻居多, ...
- Java容器---基本概念
1.持有对象 Java容器类类库的用途是“保存对象”,并将其划分为两个不同的概念: (1) Collection: 一个独立元素的序列,这些元素都服从一条或多条规则.List必须按照插入的顺序保存元素 ...
- virtualenv python的虚拟环境
官网:https://virtualenv.pypa.io/en/stable/userguide/ virtualenv通过创建独立Python开发环境的工具, 来解决依赖.版本问题 基本使用: d ...
- Web前端开发最佳实践(6):过时的块状元素和行内元素
前言 前端程序员在学习HTML的过程中,肯定接触过页面元素的两个基本类型:块状元素和行内元素,也有大量的技术文章或者教程在介绍这两个概念.但这两个HTML元素相关的概念从字面上却和CSS样式有着很深的 ...
- char *s 和char s[]的区别
char *s 和 char s[] 的区别小结 博客分类: C语言 c教育 . 最近的项目中有不少c的程序,在与项目新成员的交流中发现,普遍对于char *s1 和 char s2[] 认识有误区( ...
- Windows 10家庭版远程桌面连接错误
由于需要操作远程服务器,经常使用“远程桌面连接”工具,一直很正常.今天突然提示 出现身份验证错误,可能是由于 CredSSP加密Oracle修正.什么情况!! 根据提示的地址https://go.mi ...
- Recursion in Java
Recursion in Java 递归无出口 public class RecursionExample1 { public static void p() { System.out.println ...
- 洛谷P3402 【模板】可持久化并查集 [主席树,并查集]
题目传送门 可持久化并查集 n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 ...