The CompilerVersion constant identifies the internal version number of the Delphi compiler.
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>;
The CompilerVersion constant identifies the internal version number of the Delphi compiler.的更多相关文章
- Delphi CompilerVersion Constant / Compiler Conditional Defines
http://delphi.wikia.com/wiki/CompilerVersion_Constant The CompilerVersion constant identifies the in ...
- 当前项目与当前环境的JDK版本不匹配”Bad version number in .class file“
java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.d ...
- 解决golang windows调试问题:Could not determine version number: could not find symbol value for runtime.buildVersion
版本信息: go:1.8.3 windows: win7/64 idea-go-plugin:171.4694.61 在windows下,使用dlv进行调试的时候,如果golang程序引入了c模块,比 ...
- UnsupportedClassVersionError: Bad version number in .class file
java.lang.UnsupportedClassVersionError: Bad version number in .class file造成这种过错是ni的支撑Tomcat运行的JDK版本与 ...
- java.lang.UnsupportedClassVersionError: Bad version number in .class file异常
java.lang.UnsupportedClassVersionError: Bad version number in .class file异常 部署工程时也出现过因为版本不同引起的问题,那时我 ...
- Bad version number in .class file
TY项目是用JDK1.6做的,早先在电脑上装了一个1.5的,这回就不能用了.为了能用,我就又装了一个1.6的,修改了环境变量之后,以为一切OK.开始测试,首先在Myeclipse中打开我用1.5编的一 ...
- oracle.jbo.JboException: JBO-29000: JBO-29000: Bad version number in .class file
我在本地run Page的时候报以下错误. oracle.jbo.JboException: JBO-29000: JBO-29000: Bad version number in .class fi ...
- Java Bad version number in .class file
错误信息: java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLo ...
- Java 异常 —— Bad version number in .class file
把一个项目拷贝到另一个环境,运行时报错: Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class ...
随机推荐
- get与post
1. get是从服务器上获取数据,post是向服务器传送数据.2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过H ...
- [AaronYang]C#人爱学不学[3]
本文章不适合入门,只适合有一定基础的人看.我更相信知识细节见高低,我是从4.0开始学的,终于有时间系统的学习C#5.0,是5.0中的知识,会特殊标记下.但写的内容也可能含有其他版本framework的 ...
- 第四十二课:基于CSS的动画引擎
由于低版本浏览器不支持css3 animation,因此我们需要根据浏览器来选择不同的动画引擎.如果浏览器支持css3 animation,那么就使用此动画引擎,如果不支持,就使用javascript ...
- 传智168期JavaEE就业班 day05-XML 约束与解析
* 课程回顾: * DOM解析HTML简介 * DOM 文档对象模型 * 解析器 * document对象 * getElementById("id的值"); 返回一个元素(标签) ...
- Html-Css-iframe的自适应高度方案
先看一个示例,有两个页面,1.html通过iframe嵌入2.html,两个页面都是同域的 a.html <!DOCTYPE html> <html> <head> ...
- Hibernate-缓存-并发策略
当多个并发的事务同时访问持久化层的缓存中的相同数据时,会引起并发问题,必须采用必要的事务隔离措施. 在进程范围或集群范围的缓存,即第二级缓存,会出现并发问题.因此可以设定以下4种类型的并发访问策略,每 ...
- 移动H5页面,keyup事件不好使用处理解决
1.mouse事件换成touch,pointer事件,keyup换成textInput事件
- node相关的精典材料
node.js电子书 了不起的Node.js 深入浅出Node.js node.js入门经典 node.js开发指南 node.js相关优秀博文 官网 Infoq深入浅出Node.js系列(进阶必读) ...
- Apache22中配置虚拟主机(Apache VirtualHost)
Apache VirtualHost的作用就是可以让一个apache为多个域名服务,相当于一个服务器挂了N多个网站,举个例子: 我的apache服务器,ip为x.x.x.x,我有两个域名www.too ...
- python多线程备份MYSQL数据库并删除旧的备份。
#!/usr/bin/python # -*- coding=utf-8 -*- import time import os import datetime import threading from ...