Directives conditionnelles (langage)
Ligne 4 : | Ligne 4 : | ||
===Définir une directive conditionnelle=== | ===Définir une directive conditionnelle=== | ||
− | Les directives de compilation conditionnelle peuvent être | + | Les directives de compilation conditionnelle peuvent être définies : |
* Localement au niveau d'une procédure | * Localement au niveau d'une procédure | ||
− | : Une directive définie localement | + | : Une directive définie localement a une portée réduite au corps de la procédure. |
* Globalement au niveau du concepteur | * Globalement au niveau du concepteur | ||
− | : Une directive définie au niveau du concepteur | + | : Une directive définie au niveau du concepteur a une portée globale dans l'ensemble du code. |
Pour définir une directive locale utilisez le mot clé {$DEFINE xx} : | Pour définir une directive locale utilisez le mot clé {$DEFINE xx} : |
Version actuelle en date du 1 juin 2016 à 13:43
La directive de compilation conditionnelle "define" permet de définir une condition de compilation.
Définir une directive conditionnelle
Les directives de compilation conditionnelle peuvent être définies :
- Localement au niveau d'une procédure
- Une directive définie localement a une portée réduite au corps de la procédure.
- Globalement au niveau du concepteur
- Une directive définie au niveau du concepteur a une portée globale dans l'ensemble du code.
Pour définir une directive locale utilisez le mot clé {$DEFINE xx} :
procedure foo(); {$DEFINE FIX_1} begin {$IFDEF FIX_1} // compiled if FIX_1 is defined {$ELSE} // compiled if FIX_1 is not defined {$ENDIF} end;
Pour définir une directive de compilation globale ne l'a définissez pas au niveau du corps de la procédure :
procedure foo(); begin {$IFDEF FIX_1} // compiled if FIX_1 is defined {$ELSE} // compiled if FIX_1 is not defined {$ENDIF} end;
Les directives définies globalement apparaissent dans le dialogue de préférence du concepteur :
Vous pouvez activer ou désactiver une directive dans ce dialogue.
Notez que :
- Les directives globales sont identifiées au moment de la compilation
- Lorsque vous activez / désactivez une directive les procédures impactées sont recompilées.
Lorsque la directive n'apparait pas dans ce dialogue cela signifie que le code la comportant n'a pas encore été compilé. Vous pouvez soit créer explicitement la directive (fonction click droit "Ajouter") soit compiler le code correspondant.
Utilisation des directives conditionnelles
Les directives conditionnelles s'utilisent avec :
- {$IFDEF xx}
- Bloc compilé si la directive est définie
- {$ELSE}
- Bloc compilé si la directive n'est pas définie
- {$ENDIF}
- Termine le bloc conditionnel