2009-09-02 14 views

risposta

17

{$ IFDEF VER210}

+5

Questo file contiene quasi sempre le ultime definizioni: http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/include/jedi.inc?view= markup –

+1

@JeroenWiertPluimers, link is dead. –

+0

@ToonKrijthe JCL/JEDI si è trasferito da SF a GitHub qualche tempo fa. Questo è quello che hpemente non si muoverà per molto tempo e contiene tutte le versioni da Delphi 1 fino alla versione più recente (a volte includendo la versione attualmente in beta), inclusi Kylix e FreePascal: https://github.com/ project-jedi/jedi/blob/master/jedi.inc –

58

Ecco il 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 

In Delphi 2007, VER180 e VER185 sono entrambi definito. Questo era per compatibilità con Delphi 2006, e per essere sicuri di poter rilevare anche D2007 in particolare.

Non sono sicuro del motivo per cui l'hanno fatto tra il '06 e il '07, ma non per altre versioni. Sembra incoerente per me (ma non lo è - vedi il commento di Barry Kelly sotto).

+9

La cosa tra il 2006 e il 2007 è che il compilatore del 2007 usava lo stesso formato DCU, quindi i componenti delle persone continuavano a funzionare. –

+1

Qualcuno potrebbe aggiungere Delphi XE3 a questa lista? Sto indovinando il suo VER240? – sergeantKK

+1

aggiunto xe3, source era http://delphi.wikia.com/wiki/CompilerVersion_Constant – JosephStyons

30

Se si lavora con Delphi 6 e versioni successive, è possibile utilizzare 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 
+0

Ho aggiunto versioni del compilatore per il recente Delphi (XE3..XE7) – naXa

+0

Per favore, aggiungi XE8 (29), RAD 10 Seattle (30) e RAD 10.1 Berlino (31) – kami

+0

Il valore della costante di CompilerVersion è lo stesso di VER ### define! – Nashev

8

Ecco un wiki page con definisce condizionali.

1

Sulla stessa linea il commento di Jason se si sta creando un codice che deve essere eseguito nelle versioni attuali e precedenti di Delphi si potrebbe desiderare di fare qualcosa di simile:

{$IF CompilerVersion > 18.5} 
    //Delphi 2009 or higher 
    //Unicode version of code 
{$ELSE} 
    //Delphi 2007 and earlier 
    //NON-Unicode version of code 
{$IFEND} 
+6

Se il motivo per la compilazione condizionale è Unicode o meno, usare '{$ IFDEF UNICODE}'. –

+0

concordato. Molto più chiaro. – TheSteven

+2

Fintanto che si supporta solo Delphi 6+. Prima di Delphi 6 non c'è {$ IF} –

Problemi correlati