В Delphi 2010, если я хочу, чтобы это сделать:Что такое версия компилятора для Delphi 2010?
{$IFDEF VER999}
//some delphi 2010-specific code here
{$ENDIF}
Какую версию # мне нужно использовать вместо «999»?
В Delphi 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= разметка –
@JeroenWiertPluimers, ссылка мертва. –
@ToonKrijthe JCL/JEDI переехал из SF в GitHub некоторое время назад. Это тот, который долгое время не будет перемещаться и содержит все версии от Delphi 1 до самой последней версии (иногда включая версию в настоящее время в бета-версии), включая Kylix и FreePascal: https://github.com/ project-jedi/jedi/blob/master/jedi.inc –
Вот list of compiler versions:
{$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
В Delphi 2007, VER180
и VER185
являются как определены. Это было для обратной совместимости с Delphi 2006, и чтобы вы могли также обнаружить D2007 специально.
Я не уверен, почему они сделали это между '06 и '07, но не для других выпусков. Кажется непоследовательным для меня (но это не так - см. Комментарий Барри Келли ниже).
Вещь между 2006 и 2007 годами заключается в том, что компилятор в 2007 году использовал один и тот же формат DCU, поэтому компоненты людей все равно будут работать. –
Кто-нибудь добавит Delphi XE3 в этот список? Я предполагаю его VER240? – sergeantKK
добавил XE3, источник был http://delphi.wikia.com/wiki/CompilerVersion_Constant – JosephStyons
Если вы работаете с 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 с условными Определяет.
В том же ключе, как комментарий Джейсона, если вы создаете код, который должен выполняться в текущих и более ранних версиях 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}'. –
Согласовано. Гораздо яснее. – TheSteven
Пока вы поддерживаете только Delphi 6+. Перед Delphi 6 нет {$ IF} –
Я думаю, что вы имеете в виду IfDef. – TrueWill
ошибка да ... только опечатка. спасибо – JosephStyons
см. http://stackoverflow.com/questions/750801/ – ulrichb