Directives de version du compilateur Delphi

Si vous prévoyez d'écrire du code Delphi qui devrait fonctionner avec plusieurs versions du compilateur Delphi, vous devez savoir sous quelles versions votre code est compilé.

Supposons que vous écrivez votre propre composant personnalisé commercial. Les utilisateurs de votre composant peuvent avoir des versions Delphi différentes de la vôtre. S'ils essaient de recompiler le code du composant - votre code - ils pourraient avoir des ennuis! Et si vous utilisiez des paramètres par défaut dans vos fonctions et que l'utilisateur a Delphi 3?

Directive du compilateur: $ IfDef

Les directives du compilateur sont des commentaires de syntaxe spéciaux que nous pouvons utiliser pour contrôler les fonctionnalités du compilateur Delphi. Le compilateur Delphi a trois types de directives: sdirectives sorcières, directives paramètres et directives conditionnelles. La compilation conditionnelle nous permet de compiler de manière sélective des parties d'un code source en fonction des conditions définies.

La directive $ IfDef du compilateur démarre une section de compilation conditionnelle.

La syntaxe ressemble à:

 $ IfDef DefName


 $ Else


 $ EndIf

 

le DefName présente le soi-disant symbole conditionnel. Delphi définit plusieurs symboles conditionnels standard. Dans le "code" ci-dessus, si le DefName est défini, le code ci-dessus $ Sinon est compilé.

Symboles de version Delphi

Une utilisation courante de la directive $ IfDef est de tester la version du compilateur Delphi. La liste suivante indique les symboles à vérifier lors de la compilation conditionnelle d'une version particulière du compilateur Delphi:

  • SYMBOLE - VERSION COMPILER
  • VER80 - Delphi 1
  • VER90 - Delphi 2
  • VER100 - Delphi 3
  • VER120 - Delphi 4
  • VER130 - Delphi 5
  • VER140 - Delphi 6
  • VER150 - Delphi 7
  • VER160 - Delphi 8
  • VER170 - Delphi 2005
  • VER180 - Delphi 2006
  • VER180 - Delphi 2007
  • VER185 - Delphi 2007
  • VER200 - Delphi 2009
  • VER210 - Delphi 2010
  • VER220 - Delphi XE
  • VER230 - Delphi XE2
  • WIN32 - Indique que l'environnement d'exploitation est l'API Win32.
  • LINUX - Indique que l'environnement d'exploitation est Linux
  • MSWINDOWS - Indique que l'environnement d'exploitation est le MS Windows / li]
  • CONSOLE - Indique qu'une application est en cours de compilation en tant qu'application console

En connaissant les symboles ci-dessus, il est possible d'écrire du code qui fonctionne avec plusieurs versions de Delphi en utilisant des directives de compilation pour compiler le code source approprié pour chaque version.

Remarque: le symbole VER185, par exemple, est utilisé pour indiquer le compilateur Delphi 2007 ou une version antérieure.

Utilisation de symboles "VER"

Il est assez courant (et souhaitable) pour chaque nouvelle version de Delphi d'ajouter plusieurs nouvelles routines RTL au langage.

Par exemple, la fonction IncludeTrailingBackslash, introduite dans Delphi 5, ajoute "\" à la fin d'une chaîne si elle n'est pas déjà là. Dans le projet Delphi MP3, j'ai utilisé cette fonction et plusieurs lecteurs se sont plaints de ne pas pouvoir compiler le projet - ils ont une version Delphi avant Delphi 5.

Une façon de résoudre ce problème consiste à créer votre propre version de cette routine - la fonction AddLastBackSlash. Si le projet doit être compilé sur Delphi 5, le IncludeTrailingBackslash est appelé. Si certaines des versions Delphi précédentes sont utilisées, nous simulons la fonction IncludeTrailingBackslash.

Cela pourrait ressembler à quelque chose comme: