DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion de Windows / Fonctions diverses WINDEV
  • Variables locales
  • Compilation de l'expression
  • Utilisation d'une procédure de composant externe
  • Code dynamique
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
EvalueExpression (Fonction)
En anglais : EvaluateExpression
Evalue la valeur d'une expression construite dans une chaîne de caractères.
Exemple
// Evaluation d'une formule
x,y sont des réels
x = 1.5
y = 5
Trace(ÉvalueExpression("cos(x)+sin(y)"))
Syntaxe
<Résultat> = EvalueExpression(<Expression> [, <Paramètres>])
<Résultat> : Tout type
  • Si l'expression compile sans erreur, résultat de l'expression.
  • Si l'expression ne compile pas, si elle ne renvoie pas de valeur ou si une erreur se produit lors de l'évaluation, une erreur fatale est déclenchée.
<Expression> : Chaîne de caractères
Expression à évaluer.
<Paramètres> : Variable optionnelle de type CodeWLangageCompilation
Nouveauté 2024
WINDEVWEBDEV - Code Serveur Nom de la variable de type CodeWLangageCompilation permettant de définir les paramètres de compilation (fonctions WLangage autorisées, interdites, etc.).
Si ce paramètre n'est pas spécifié, toutes les fonctions WLangage sont autorisées.
Remarques

Variables locales

Les variables locales du traitement courant peuvent être utilisées directement dans l'expression.

Compilation de l'expression

L'expression est recompilée à chaque appel de la fonction EvalueExpression.
Pour éviter la phase de recompilation, vous pouvez utiliser les fonctions Compile et Exécute pour construire le code d'une procédure, la compiler une fois et l'exécuter plusieurs fois. Dans ce cas, vous perdrez la possibilité d'utiliser directement des variables locales du traitement courant qu'il faudra remplacer par des paramètres de la procédure.

Utilisation d'une procédure de composant externe

L'expression est recompilée à chaque appel de la fonction EvalueExpression.
L'appel d'une procédure d'un composant externe doit nommer cette procédure avec son nom complet.
ÉvalueExpression("MonComposant.MaCollection.MaProcédure()"))

Code dynamique

Les constantes ne peuvent pas être utilisées dans le code dynamique (définies avec le mot-clé CONSTANTE).
Lors de l'utilisation de constantes dans un code toute les occurrences des constantes sont remplacées par leur valeur au moment de la compilation sous l'éditeur, mais la correspondance entre le nom des constantes et leur valeur n'est pas "embarquée" dans l'application. Donc la compilation dynamique ne peut pas utiliser les constantes.
Voici deux alternatives :
1 - Utiliser des variables à la place des constantes :
CONSTANTE
CST_Nom = 1
FIN
devient par exemple
CST_Nom est un entier = 1
ou
2 - Dans la chaîne qui contient le code que l'on va compiler dynamiquement, au lieu de laisser le nom de la constante, on remplace le nom de la constante par sa valeur :
sCode est une chaîne
// Dans la chaîne qui contient le code que l'on va compiler dynamiquement
// au lieu de laisser le nom de la constante comme ici :
sCode=[
Info(CST_Nom)
]
// On remplace le nom de la constante par sa valeur
sCode = Remplace(sCode,"CST_Nom", CST_Nom, MotComplet + SansCasse)
// Il est ensuite possible de compiler le code
SI Compile("ProcDyn", sCode) <> "" ALORS
Erreur("Erreur de compilation de la procédure dynamique : ", ...
ErreurInfo())
SINON
// Puis de l'exécuter
QUAND EXCEPTION DANS 
ExécuteTraitement("ProcDyn", trtProcédure)
FAIRE
Erreur("Erreur d'exécution de la procédure dynamique : ", ...
ExceptionInfo())
FIN
FIN
Composante : wd290vm.dll
Version minimum requise
  • Version 17
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 16/01/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale