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?
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é.
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:
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.
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: