2009-09-02 12 views

Antwort

17

{$ IFDEF VER210}

+5

Diese Datei enthält fast immer die neuesten Definitionen: http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/source/include/jedi.inc?view= Markup –

+1

@ JeroenWiertPluimers, Link ist tot. –

+0

@ToonKrijthe JCL/JEDI ist vor einiger Zeit von SF nach GitHub umgezogen. Dies ist derjenige, der sich sehr lange nicht bewegen wird und alle Versionen von Delphi 1 bis zur aktuellsten Version enthält (manchmal einschließlich der aktuell in der Beta-Version), einschließlich Kylix und FreePascal: https://github.com/ project-jedi/jedi/blob/master/jedi.inc –

58

Hier ist die 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 und VER185 sind sowohl definiert. Dies geschah aus Gründen der Rückwärtskompatibilität mit Delphi 2006 und um sicherzustellen, dass Sie auch D2007 spezifisch erkennen konnten.

Ich bin mir nicht sicher, warum sie das zwischen 06 und 07 gemacht haben, aber nicht für andere Versionen. Scheint widersprüchlich zu mir (aber es ist nicht - siehe unten Barry Kelly Kommentar).

+9

Die Sache zwischen 2006 und 2007 ist, dass der Compiler im Jahr 2007 das gleiche DCU-Format verwendet hat, so dass die Komponenten von Menschen immer noch funktionieren würden. –

+1

Würde jemand Delphi XE3 zu dieser Liste hinzufügen? Ich vermute sein VER240? – sergeantKK

+1

hinzugefügt XE3, Quelle http://delphi.wikia.com/wiki/CompilerVersion_Constant war – JosephStyons

30

Wenn Sie mit Delphi 6 und höher arbeiten, können Sie CompilerVersion verwenden:

{$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

Ich habe hinzugefügt Compiler-Versionen für den letzten Delphi (XE3..XE7) – naXa

+0

Bitte fügen Sie XE8 (29), RAD 10 Seattle (30) und RAD 10.1 Berlin (31) hinzu – kami

+0

Der Wert der CompilerVersion-Konstante ist der gleiche wie in der VER ### -Definition! – Nashev

8

hier ein wiki page mit bedingtem definiert ist.

1

In die gleiche Richtung wie Jasons Kommentar, wenn Sie Code erstellen, die Sie in der aktuellen und älteren Versionen von Delphi ausgeführt werden muss könnte wie etwas tun:

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

Wenn der Grund für die bedingte Kompilierung Unicode ist oder nicht, verwenden Sie '{$ IFDEF UNICODE}'. –

+0

Einverstanden. Viel klarer. – TheSteven

+2

Solange Sie nur Delphi 6+ unterstützen. Vor Delphi 6 gibt es nicht {$ IF} –

Verwandte Themen