views:

1173

answers:

2

Does anyone know of a good place where I can find the complete list of version defines for all the Delphi versions, right up to Delphi 2009?

+4  A: 

You could us the GX_CondDefine.inc From the great gexperts plugin:

{$IFDEF CONDITIONALEXPRESSIONS}
  {$IFDEF BCB}
    {$DEFINE GX_BCB}
  {$ELSE}
    {$DEFINE GX_Delphi}
  {$ENDIF}

  {$IF CompilerVersion >= 14}
    {$DEFINE GX_VER140_up} // Delphi 6
    {$IFDEF LINUX}
      {$DEFINE GX_KYLIX}
      {$IF RTLVersion = 14.2}
        {$DEFINE GX_KYLIX2} // Kylix 2
      {$IFEND}
      {$IF RTLVersion = 14.5}
        {$DEFINE GX_KYLIX3} // Kylix 3
      {$IFEND}
    {$ENDIF}
    {$IF CompilerVersion >= 15}
      {$DEFINE GX_VER150_up}  // Delphi 7
      {$IF CompilerVersion >= 16}
        {$DEFINE GX_VER160_up}  // Delphi 8
        {$IF CompilerVersion >= 17}
          {$DEFINE GX_VER170_up}  // Delphi 9/2005
          {$IF CompilerVersion >= 18}
            {$DEFINE GX_VER180_up}  // BDS 2006
            {$IFDEF VER185}
              {$DEFINE GX_VER185_up}  // Delphi 2007
            {$ENDIF}
            {$IF CompilerVersion >= 19}
              {$DEFINE GX_VER190_up}  // Delphi .NET 2007
              {$IF CompilerVersion >= 20}
                {$DEFINE GX_VER200_up}  // RAD Studio 2009
              {$IFEND}
            {$IFEND}
          {$IFEND}
        {$IFEND}
      {$IFEND}
    {$IFEND}
  {$IFEND}
{$ELSE not CONDITIONALEXPRESSIONS}
  Sorry, but this version of GExperts does not support the IDE
  you are using. Please visit the GExperts web site at
  http://www.gexperts.org/ to obtain more information about
  support for your IDE.
{$ENDIF}
Davy Landman
+21  A: 

A very, very good Delphi version include file is the jedi.inc from the the JEDI Code Library (JCL).

It is always up-to-date and it includes a lot of "Feature Directives" like SUPPORTS_INT64 or SUPPORTS_UNICODE_STRING.

Here is the SVN link.

ulrichb
Agreed, that one is very extensive!
Davy Landman
I think this is the one I would recommend in the future !!
Gustavo Carreno
This is the original document that I sent to Jedi about this, it provides a rationale why to do this:http://www.stack.nl/~marcov/porting.pdf (chapter 2)
Marco van de Voort