德爾福2010年,如果我想這樣做:Delphi 2010的編譯器版本是什麼?
{$IFDEF VER999}
//some delphi 2010-specific code here
{$ENDIF}
,我需要代替「999」使用什麼版本#?
德爾福2010年,如果我想這樣做:Delphi 2010的編譯器版本是什麼?
{$IFDEF VER999}
//some delphi 2010-specific code here
{$ENDIF}
,我需要代替「999」使用什麼版本#?
{$ IFDEF VER210}
該文件幾乎總是包含最新的定義:http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/include/jedi.inc?view=標記 – 2009-10-15 12:49:35
@JeroenWiertPluimers,鏈接已死亡。 – 2015-01-27 12:00:56
@ToonKrijthe JCL/JEDI不久前從SF轉移到GitHub。這是一個很長時間不會移動的版本,包含Delphi 1的所有版本,直到最新發布的版本(有時包括目前處於beta版本的版本),包括Kylix和FreePascal:https://github.com/ project-jedi/jedi/blob/master/jedi.inc – 2015-01-29 11:54:19
{$IFDEF VER40} - Turbo pascal 4
{$IFDEF VER50} - Turbo pascal 5
{$IFDEF VER55} - Turbo pascal 5.5
{$IFDEF VER60} - Turbo pascal 6
{$IFDEF VER70} - Borland pascal 7 (And turbo pascal 1.5 for windows)
{$IFDEF VER80} - Delphi 1
{$IFDEF VER90} - Delphi 2
{$IFDEF VER100} - Delphi 3
{$IFDEF VER120} - Delphi 4
{$IFDEF VER130} - Delphi 5
{$IFDEF VER140} - Delphi 6
{$IFDEF VER150} - Delphi 7
{$IFDEF VER160} - Delphi 8
{$IFDEF VER170} - Delphi 2005
{$IFDEF VER180} - Delphi 2006
{$IFDEF VER180} - Delphi 2007
{$IFDEF VER185} - Delphi 2007
{$IFDEF VER200} - Delphi 2009
{$IFDEF VER210} - Delphi 2010
{$IFDEF VER220} - Delphi XE
{$IFDEF VER230} - Delphi XE2
{$IFDEF VER240} - Delphi XE3
{$IFDEF VER250} - Delphi XE4
{$IFDEF VER260} - Delphi XE5
{$IFDEF VER265} - Appmethod 1.0
{$IFDEF VER270} - Delphi XE6
{$IFDEF VER280} - Delphi XE7
{$IFDEF VER290} - Delphi XE8
{$IFDEF VER300} - Delphi 10 Seattle
{$IFDEF VER310} - Delphi 10.1 Berlin
{$IFDEF VER320} - Delphi 10.2 Tokyo
2007年德爾福,VER180
和VER185
是定義都。這是爲了與Delphi 2006向後兼容,並確保您也可以專門檢測D2007。
我不確定他們爲什麼會在'06和'07之間做到這一點,但是不能用於其他版本。似乎不一致(但它不是 - 請參閱下面的Barry Kelly的評論)。
從2006年到2007年,2007年的編譯器使用了相同的DCU格式,所以人們的組件仍然可以工作。 – 2009-10-15 22:36:55
有人會將Delphi XE3添加到此列表中嗎?我猜測它的VER240? – sergeantKK 2012-10-08 15:12:02
添加XE3,來源是http://delphi.wikia.com/wiki/CompilerVersion_Constant – JosephStyons 2012-10-09 18:01:51
如果你用Delphi 6個工作以後,你可以使用CompilerVersion
:
{$IF CompilerVersion >= 18.5}
//some code only compiled for Delphi 2007 and later
{$IFEND}
Delphi 10.2 Tokyo - 32 Delphi 10.1 Berlin - 31 Delphi 10 Seattle - 30 Delphi XE8 - 29 Delphi XE7 - 28 Delphi XE6 - 27 Appmethod 1.0 - 26.5 Delphi XE5 - 26 Delphi XE4 - 25 Delphi XE3 - 24 Delphi XE2 - 23 Delphi XE - 22 Delphi 2010 - 21 Delphi 2009 - 20 Delphi 2007 - 18.5 Delphi 2006 - 18 Delphi 2005 - 17 Delphi 8 - 16 Delphi 7 - 15 Delphi 6 - 14
這裏是一個wiki page有條件的定義。
按照同樣的思路爲Jason的評論,如果你正在創建一個需要在Delphi的當前和舊版本運行的代碼,你可能想要做這樣的事情:
{$IF CompilerVersion > 18.5}
//Delphi 2009 or higher
//Unicode version of code
{$ELSE}
//Delphi 2007 and earlier
//NON-Unicode version of code
{$IFEND}
如果條件編譯的原因是Unicode或缺乏,請使用'{$ IFDEF UNICODE}'。 – 2011-05-24 00:40:57
同意。更清楚。 – TheSteven 2011-09-08 21:16:01
只要你只支持Delphi 6+。在Delphi 6之前沒有{$ IF} – 2014-05-17 15:01:22
我想你的意思IFDEF。 – TrueWill 2009-09-02 23:46:42
錯誤是......只是一個錯字。謝謝 – JosephStyons 2009-09-03 00:16:26
請參閱http://stackoverflow.com/questions/750801/ – ulrichb 2010-05-17 21:43:57