Si planea escribir código de Delphi que debería funcionar con varias versiones del compilador de Delphi, necesita saber en qué versiones se compila su código.
Supongamos que está escribiendo su propio componente comercial personalizado. Los usuarios de su componente pueden tener diferentes versiones de Delphi que usted. Si intentan recompilar el código del componente, su código, ¡podrían estar en problemas! ¿Qué pasaría si estuviera utilizando parámetros predeterminados en sus funciones y el usuario tiene Delphi 3??
Las directivas del compilador son comentarios de sintaxis especiales que podemos usar para controlar las características del compilador Delphi. El compilador de Delphi tiene tres tipos de directivas: sdirectivas de brujas, directivas de parámetros y directivas condicionales. La compilación condicional nos permite compilar selectivamente partes de un código fuente dependiendo de las condiciones establecidas.
La directiva del compilador $ IfDef inicia una sección de compilación condicional.
La sintaxis se ve así:
$ IfDef DefName
...
$ Else
...
$ EndIf
los DefName presenta el llamado símbolo condicional. Delphi define varios símbolos condicionales estándar. En el "código" anterior, si DefName está definido, el código anterior $ Else se compila.
Un uso común de la directiva $ IfDef es probar la versión del compilador Delphi. La siguiente lista indica los símbolos que se deben verificar al compilar condicionalmente una versión particular del compilador Delphi:
Al conocer los símbolos anteriores, es posible escribir código que funcione con varias versiones de Delphi mediante el uso de directivas de compilación para compilar el código fuente apropiado para cada versión.
Nota: el símbolo VER185, por ejemplo, se usa para indicar el compilador Delphi 2007 o una versión anterior.
Es bastante habitual (y deseable) que cada nueva versión de Delphi agregue varias rutinas RTL nuevas al idioma.
Por ejemplo, la función IncludeTrailingBackslash, introducida en Delphi 5, agrega "\" al final de una cadena si aún no está allí. En el proyecto MP3 de Delphi, he usado esta función y varios lectores se han quejado de que no pueden compilar el proyecto, tienen alguna versión de Delphi anterior a Delphi 5.
Una forma de resolver este problema es crear su propia versión de esta rutina: la función AddLastBackSlash. Si el proyecto debe compilarse en Delphi 5, se llama a IncludeTrailingBackslash. Si se utilizan algunas de las versiones anteriores de Delphi, simulamos la función IncludeTrailingBackslash.
Podría verse algo así como: