Cómo identificar la versión de Delphi en tiempo de compilación

En muchas ocasiones es extremadamente útil saber en que versión del compilador de Delphi estamos trabajando, en particular para los que desarrollan componentes, pues por lo general hay dependencias sobre ciertas versiones. Hay dos formas de identificar la versión de Delphi en tiempo de compilación: la primera de ellas es usando la directiva de compilador {$IFDEF} en conjunto con varios símbolos que se definen al compilar y que son los siguientes:

{$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
{$IFDEF VER270} - Delphi XE6
{$IFDEF VER280} - Delphi XE7
{$IFDEF VER290} - Delphi XE8

Los de ojo agudo se percatarán que hay un par de símbolos que no siguen la secuencia, en particular VER180 y VER185, que indican Delphi 2006 y Delphi 2007, respectivamente; en su momento esto se hizo de esta forma para que con Delphi 2007 no se rompiera la compatibilidad con Delphi 2006, pero para aquellos que quisieran dependencia sobre Delphi 2007 entonces se usa VER185. Con estas constantes, el siguiente código:

{$IFDEF VER140}
ShowMessage('Vaya! su Delphi ya está entrado en años...');
{$ENDIF}
{$IFDEF VER200}
ShowMessage('Ups! cuidado con Unicode!');
{$ENDIF}

Cuando se compile y ejecute, mostraría el primer mensaje si fuera compilado bajo Delphi 6.0, y el segundo si fuera compilado con Delphi 2009. Sin embargo, a pesar de que los símbolos mencionados anteriormente son útiles, pueden ser engorrosos cuando se quieren hacer varias comparaciones, como por ejemplo saber si el compilador usado es superior a Delphi 6.0, es decir, que puede ser el 7, 8, 2006 o cualquiera superior. Para esas ocasiones, a partir de Delphi 6.0 existe una constante llamada CompilerVersion que define la versión usada de Delphi. Su uso es como sigue:

{$IF CompilerVersion >= 20}
{ El código que esté entre estas directivas sólo se compilará bajo Delphi 2009 }
{$IFEND}

Y como puedes ver, la comparación permite los operadores con los que estamos familiarizados, como “>=”. El listado de valores posibles de CompilerVersion es el siguiente:

Delphi XE8  - 29
Delphi XE7  - 28
Delphi XE6  - 27
AppMethod 1 - 26.5
Delphi XE5  - 26
Delphi XE4  - 25
Delphi XE3  - 24
Delphi XE2  - 23
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

Como puedes ver, es muy sencillo identificar las versiones de Delphi.

Esta entrada fue publicada en Delphi y etiquetada , , . Guarda el enlace permanente.

Una respuesta a Cómo identificar la versión de Delphi en tiempo de compilación

  1. Pedro dijo:

    gracias,muy bueno.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *