Inclusions
Les inclusions de code permettent d'inclure un ensemble de lignes de code dans un autre.
Pour une réutilisation modulaire de code, voire les unités.
Inclusions de Code
Il est possible d'inclure le code source d'un script au sein d'un autre par le biais de la directive $INCLUDE (ou $I en abrégé).
Suivant les contextes dans Qubes, il sera possible d'inclure un script contextuel (élément script dans une vue graphique par exemple), les bibliothèques de script (gérée dans un document distinct de la GED) peuvent elles être incluses dans tous les contextes.
Le code ainsi inclus est inclus tel quel, il peut contenir des définitions de classes, de fonctions, etc. voire du code.
Ce mécanisme est récursif: un code inclus peut lui-même contenir des directives $INCLUDE.
Pour éviter qu'un code ne soit inclus plusieurs fois, à partir de Qubes v5.6, il est possible d'utiliser la variante $INCLUDE_ONCE.
Pour les versions précédentes, il est possible d'utiliser des directives de compilation conditionnelle, par exemple:
//
{$IFNDEF BONJOUR_INCLUS}
{$DEFINE BONJOUR_INCLUS}
procedure Bonjour;
begin
PrintLn('Bonjour');
end;
{$ENDIF}
même si l'on tente d'inclure le script Bonjour plusieurs fois, la directive conditionnelle protégera le code, et la procédure Bonjour ne sera incluse qu'une seule fois.
Informations de Compilation
La directive $INCLUDE peut aussi être utilisée pour inclure des informations de compilation (sous forme d'un littéral de type chaîne)
Avec XXX pouvant prendre les valeurs suivantes:
- FILE: fichier contenant le source (à noter que pour le code principal il s'agit de '*MainModule*').
- MAINFILE: fichier principal (Qubes 6.3).
- LINE: numéro de la ligne courante dans le fichier source (sous forme de chaîne).
- LINENUM: numéro de la ligne courante dans le fichier source (sous forme numérique, Qubes 6.3).
- FUNCTION: nom de la fonction ou de la méthode courante dans le fichier source.
- DATE: date de compilation du script (au format 'yyyy-mm-dd').
- TIME: heure de compilation du script (au format 'hh:nn:ss').
- TIMESTAMP: date/heure de compilation du script (numérique, Unix Time, Qubes 7.2).