Directives conditionnelles (langage)

De Wiki1000
(Différences entre les versions)
 
Ligne 4 : Ligne 4 :
  
 
===Définir une directive conditionnelle===
 
===Définir une directive conditionnelle===
Les directives de compilation conditionnelle peuvent être défini :
+
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 portée réduite au corps de la procédure.
+
: 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 portée globale dans l'ensemble du code.
+
: 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

version710-32x32.png

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 :

Designer pref defines.png

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
Outils personnels