|
|
|
|
|
- Local variables
- Compiling the expression
- Using a procedure of the external component
- Dynamic code
EvaluateExpression (Function) In french: EvalueExpression Evaluates the value of an expression built in a character string.
x,y are reals
x = 1.5
y = 5
Trace(EvaluateExpression("cos(x)+sin(y)"))
Syntax
<Result> = EvaluateExpression(<Expression> [, <Parameters>])
<Result>: Any type - If the expression compiles without any errors, result of the expression.
- If the expression fails to compile, if it does not return a value or if an error occurs during the evaluation, it triggers a fatal error.
<Expression>: Character string Expression to evaluate. <Parameters>: Optional variable of type CodeWLangageCompilation
Remarks Local variables The local variables of the current process can be used directly in the expression. Compiling the expression The code is recompiled whenever EvaluateExpression is called. To avoid the compilation step, you can use Compile and Execute to build the code of a procedure, compile it once and run it several times. In this case, you will lose the ability to directly use local variables of the current process which will need to be replaced with parameters in the procedure. Using a procedure of the external component The code is recompiled whenever EvaluateExpression is called. The call to a procedure of the external component must name this procedure with its full name.
EvaluateExpression("MonComposant.MaCollection.MaProcédure()"))
Dynamic code Constants cannot be used in dynamic code (defined with the CONSTANT keyword). When using constants in a code, all the occurrences of the constants are replaced with their value during the compilation in the editor but the correspondence between the name of constants and their value is not "embedded" in the application. Therefore, the dynamic compilation cannot use the constants. Let's see two alternatives: 1 - Use variables instead of constants: 2 - In the string containing the code that must be compiled dynamically, replace the name of the constant by its value: sCode is string
sCode=[
Info(CST_Nom)
]
sCode = Replace(sCode,"CST_Nom", CST_Nom, WholeWord + IgnoreCase)
IF Compile("ProcDyn", sCode) <> "" THEN
Error("Erreur de compilation de la procédure dynamique: ", ...
ErrorInfo())
ELSE
WHEN EXCEPTION IN
ExecuteProcess("ProcDyn", trtProcedure)
DO
Error("Erreur d'exécution de la procédure dynamique: ", ...
ExceptionInfo())
END
END
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|