|
|
|
|
- Variables locales
- Compilación del código
- Código dinámico
Ejecuta el código WLanguage que se encuentra en una cadena de caracteres. sText is string = "Text" // Displays the text in a window ExécuteCode("Info(sText)")
// Declare the variables. sCodeToRun is string xOperationResult is numeric // WLanguage code to run. // This code returns the result of an operation %1. sCodeToRun = [ MyCalculation is numeric MyCalculation = %1 RETURN MyCalculation ] // WLanguage code to run. // Replace %1 by the operation displayed // in the EDT_EXPRESSION edit control. sCodeToRun = StringBuild(sCodeToRun, EDT_EXPRESSION) // Run the code and retrieve the result. xOperationResult = ExecuteCode(sCodeToRun) // Displays the result of the operation in an Info message box Info("The result of your operation is: " + xOperationResult)
Sintaxis
<Result> = ExecuteCode(<Code>)
<Result>: Cualquier tipo - Resultado del código si contiene una sentencia RETURN,
- Nada más que eso. En este caso, puede aparecer un mensaje de error cuando se asigna el resultado en un Variable por ejemplo.
<Code>: Cadena de caracteres Código WLanguage a ejecutar. Observación: Este código puede contener el código de llamada y de declaración de un Procedure interno. Observaciones Variables locales Las variables locales del actual Process pueden ser usadas directamente en el código a ejecutar. Si el código se compila sin erroresel código se ejecuta directamente. Se desencadena un error fatal si el código no está compilado. Compilación del código El código se recompila cada vez que se llama a la función ExecuteCode. Para evitar el paso de compilación, tiene la posibilidad de utilizar Compilar y Ejecute. Código dinámico Las constantes no pueden utilizarse en el código dinámico (definido por la palabra clave CONSTANTE). Cuando se utilizan constantes en un código, todas las apariciones de las constantes se sustituyen por su valor durante la compilación en el editor, pero la correspondencia entre el nombre de las constantes y su valor no se "incrusta" en la aplicación. Por lo tanto, la compilación dinámica no puede utilizar las constantes. Veamos dos alternativas: 1 - Usar variables en lugar de constantes se convierte, por ejemplo 2 - En la cadena que contiene el código que debe compilarse dinámicamente, sustituir el nombre de la constante por su valor: sCode is string // In the string containing the code that will be compiled dynamically // instead of leaving the name of the constant: sCode=[ Info(CST_Name) ] // Replace the name of the constant by its value sCode = Replace(sCode, "CST_Name", CST_Name, WholeWord + IgnoreCase) // The code can be compiled now IF Compile("DynProc", sCode) <> "" THEN Error("Error while compiling the dynamic procedure: ", ... ErrorInfo()) ELSE // Then it can be run WHEN EXCEPTION IN ExecuteProcess("DynProc", trtProcedure) DO Error("Error while running the dynamic procedure: ", ... ExceptionInfo()) END END
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|