|
|
|
|
|
- Paramètre Condition
- Mot-clé Configuration
- Mot-clé TypeConfiguration
- Compilations selon le type des chaînes utilisées (UNICODE ou ANSI)
- Compilations selon l'existence d'un élément
- Avantages et limitations
Instruction de compilation : COMPILE SI En anglais : COMPILE IF
L'instruction de compilation <COMPILE SI> permet de compiler ou non un code WLangage selon une condition. Cette instruction est notamment utilisée pour obtenir simplement un code multi-configuration, sans affichage d'erreurs de compilation (utilisation des mots-clés Configuration et TypeConfiguration). Différence entre <COMPILE SI> et l'utilisation du code-cible conditionnel : - Le code-cible conditionnel compile le code.
Le code-cible conditionnel est intéressant par exemple pour un composant qui s'exécutera sur des plateformes différentes. Le code est compilé dans toutes les plateformes et il s'exécutera selon la plateforme en cours. Pour plus de détails, consultez Code-cible conditionnel. - La compilation conditionnelle (instruction <COMPILE SI>) ne compile pas le code. Elle permet notamment d'éviter l'affichage des erreurs de compilation (utilisation des mots-clés Configuration et TypeConfiguration). Pour plus de détails, consultez le paragraphe Avantages et limitations.
<COMPILE SI Configuration <> "Archive Java">
Trace("Pas Archive Java")
<FIN>
<COMPILE SI Configuration <> "Archive Java" ET Configuration = "Exécutable Windows 32 bits">
Trace("Pas Archive Java et Exe32")
<FIN>
<COMPILE SI Configuration = "Linux64" OU TypeConfiguration = Android>
Trace("Linux64")
i est un entier = 12
<SINON>
Trace("Autres")
i est une chaîne = 24
<FIN>
Trace("i = " + i)
<COMPILE SI Configuration <> "Archive Java">
CONSTANTE
Nom_Constante = 10
FIN
<SINON>
CONSTANTE
Nom_Constante = 20
FIN
<FIN>
<COMPILE SI Configuration = "Android">
PROCÉDURE Gestion_Beacon()
<FIN>
Syntaxe
Compilation en fonction d'une condition
<COMPILE SI <Condition>> ... // Code compilé si la condition est vraie <FIN>
Compilation d'un code ou d'un autre en fonction d'une condition
<COMPILE SI <Condition>> ... // Code compilé si la condition est vraie <SINON> ... // Code compilé si la condition est fausse <FIN>
Compilation d'un code ou d'un autre en fonction de plusieurs conditions
<COMPILE SI <Condition1>> ... // Code compilé si la condition <Condition1> est vraie <SINON SI <Condition2>> ... // Code compilé si la condition <Condition2> est vraie ... <SINON SI <ConditionN>> ... // Code compilé si la condition <ConditionN> est vraie <FIN>
Compilation d'un code ou d'un autre en fonction de plusieurs conditions
<COMPILE SI <Condition1>> ... // code compilé si la condition <Condition1> est vraie <SINON SI <Condition2>> ... // Code compilé si la condition <Condition2> est vraie ... <SINON SI <ConditionN>> ... // Code compilé si la condition <ConditionN> est vraie <SINON> ... // Code compilé si toutes les conditions sont fausses <FIN>
Compilation d'un code selon le type de chaînes utilisées
<COMPILE SI ConfigurationANSI/ConfigurationUNICODE> ... // code compilé si la configuration en cours utilise des chaînes ANSI (ou des chaînes UNICODE) <SINON> ... // code compilé si la configuration en cours n'utilise pas des chaînes ANSI (ou des chaînes UNICODE) <FIN>
Compilation d'un code selon le type de configuration utilisée (32 ou 64 bits)
<COMPILE SI Configuration32/Configuration64> ... // code compilé si la configuration en cours est une configuration 32 bits ou 64 bits <SINON> ... <FIN>
Compilation d'un code selon le la présence d'un élément dans la configuration courante
<COMPILE SI <Elément> EXISTE> ... // code compilé si l'élément spécifié existe dans la configuration courante <SINON> ... <FIN>
Compilation d'une procédure (locale ou globale) en fonction d'une condition Masquer les détails
<COMPILE SI <Condition>> PROCEDURE <Nom procédure>([<Paramètre 1>, ..., <Paramètre N>) ... // Code de la procédure <FIN>
Remarque : L'instruction COMPILE SI doit être présente juste avant la première ligne de déclaration de la procédure. Remarques Paramètre Condition La condition doit être évaluable à la compilation : elle peut donc contenir uniquement des éléments littéraux (nombres, chaînes, Vrai, Faux, etc.) ou des constantes. Remarques : - Il n'est pas possible d'utiliser une fonction dans la condition.
- La condition peut utiliser des opérateurs de comparaison.
- Des mots-clés spécifiques peuvent être utilisés : Configuration et TypeConfiguration.
Mot-clé Configuration Le mot-clé Configuration renvoie le nom de la configuration en cours. Il est donc possible d'écrire : <COMPILE SI Configuration = "ConfigTest"> // Code compilé dans la configuration "ConfigTest" <FIN> Mot-clé TypeConfiguration Le mot-clé TypeConfiguration renvoie le type de la configuration en cours. Il est donc possible d'écrire : <COMPILE SI TypeConfiguration=ApplicationWindows> // Code compilé dans toutes les configurations Windows <FIN> Les types de configuration disponibles sont : - ApplicationWindows
- ApplicationWindows32
- ApplicationWindows64
- Site
- Bibliothèque
- ComposantExterne
- Webservice
- AssemblageDotNet
- ApplicationDotNet
- Java
- ApplicationLinux
- ApplicationLinux32
- ApplicationLinux64
- PatternRAD
- ServiceWindows
- ServiceWindows32
- ServiceWindows64
- ServiceLinux
- ServiceLinux32
- ServiceLinux64
- Android
- PlanAction
- iOS
- MacOSX
- UniversalWindowsApp
- WindowsMobile
Compilations selon le type des chaînes utilisées (UNICODE ou ANSI) La syntaxe utilisant les mots-clés ConfigurationANSI et ConfigurationUNICODE permet de compiler un code en fonction du type de chaînes utilisé. Ce paramètre est défini dans la fenêtre de description de la configuration en cours (onglet "Unicode").
Compilations selon l'existence d'un élément La syntaxe COMPILE SI XXX EXISTE permet de compiler un code en fonction de la présence d'un élément du projet dans la configuration courante.Les éléments du projet pris en compte sont les suivants : - page, page interne,
- fenêtre, fenêtre interne,
- requête,
- état,
- collection de procédures,
- télémétrie,
- classe,
- composant externe,
- composant interne,
- constante du projet,
- élément externe global.
Il devient possible par exemple de demander à compiler un code uniquement si une constante définie dans le projet existe. Il est ainsi possible de compiler un code différent dans un composant en fonction de l'existante ou non d'une constante dans le projet. Par exemple :
<COMPILE SI CST_BOOL EXISTE>
Trace("Le code est compilé")
<FIN>
Avantages et limitations Si les conditions précisées dans <COMPILE SI> ne sont pas remplies, le code WLangage n'est pas compilé. Le code non compilé est affiché en gris sous l'éditeur de code, avec une mise en forme minimale. Avantages : - Il n'y a pas d'erreur de compilation : les subtilités propres à chaque plateforme (Android, iOS) peuvent être codées sans provoquer d'erreur de compilation dans les autres configurations.
- Il est possible de déclarer la même variable dans deux parties d'une condition de compilation avec des types différents.
Limitations : Dans le code non compilé : - il n'y a aucune assistance à la saisie du code.
- il n'y a pas de références croisées : pas de Shift+F2, les utilisations des éléments ne sont pas vues, les éléments peuvent apparaître dans les listes des éléments orphelins et du code mort.
- il n'y a pas d'analyse du code : pas de renommage intelligent.
- il n'y a pas d'erreur de compilation : si le prototype d'une procédure est modifié, l'erreur ne sera affichée que lors du passage dans une configuration qui autorise la compilation du code.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|