Jaka jest wersja kompilatora dla Delphi 2010?

W Delphi 2010, Jeśli chcę to zrobić:

{$IFDEF VER999}
//some delphi 2010-specific code here
{$ENDIF}

Jakiej wersji # mam użyć zamiast "999"?

Author: ulrichb, 2009-09-02

5 answers

{$IFDEF210}

 17
Author: Red Haze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-03 03:18:25

Oto Lista wersji kompilatora :

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

W Delphi 2007, VER180 i VER185oba zdefiniowane. Miało to na celu wsteczną kompatybilność z Delphi 2006 i upewnienie się, że można również wykryć d2007 specjalnie.

Nie jestem pewien, dlaczego zrobili to między '06 A '07, ale nie dla innych wydawnictw. Wydaje mi się niespójne (ale tak nie jest - patrz komentarz Barry 'ego Kelly' ego poniżej).

 58
Author: JosephStyons,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-17 01:16:28

Jeśli pracujesz z Delphi 6 i nowszymi, możesz użyć 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
 31
Author: jasonpenny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-17 01:15:30

Oto strona wiki z definicjami warunkowymi.

 8
Author: Bruce McGee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-15 13:24:02

Podobnie jak komentarz Jasona jeśli tworzysz kod, który musi działać w obecnych i starszych wersjach Delphi, możesz zrobić coś w stylu:

{$IF CompilerVersion > 18.5} 
   //Delphi 2009 or higher
   //Unicode version of code
{$ELSE}
   //Delphi 2007 and earlier
   //NON-Unicode version of code
{$IFEND}
 1
Author: TheSteven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-25 21:26:36