Comandos integrados

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Referencia del programador > Editor de scripts > Notas sobre programación >

Comandos integrados

En este apartado se explican:

 

Comandos integrados
alert
conform
doevents
CreateForm
lastform
prompt
ShowForm
watchdog

 

Comandos de interoperabilidad de .NET
CLR.Create
CLR.Import
CLR.LoadAssembly
CLR.ShowImports
CLR.ShowLoadedAssemblies
CLR.Static

 

Comandos integrados

Estos son los comandos integrados disponibles:

 

 

ShowForm(strFormName : cadenaDeTexto)

Crea una instancia de un objeto FormularioNuevo a partir del nombre de formulario dado y lo muestra inmediatamente en forma de cuadro de diálogo.

Valor devuelto: un número que representa el DialogResult generado (System.Windows.Forms.DialogResult).

 

Ejemplo:

var dialogResult = ShowForm( "FormName" );

 

Muestra el formulario "FormName" como cuadro de diálogo:

 

ShowForm

 

DialogResult se puede evaluar con:

 

if ( dialogResult == CLR.Static( "System.Windows.Forms.DialogResult" ).OK )
       alert( "ok" );
else
       alert( "cancel" );

 

 

CreateForm(strFormName : cadenaDeTexto)

Crea una instancia de un objeto FormularioNuevo a partir del nombre de formulario dado.

Valor devuelto: el objeto Form (System.Windows.Forms.Form) con el nombre dado o null si existe ningún objeto Form con ese nombre.

 

Ejemplo:

var myForm = CreateForm( "FormName" );
if ( myForm != null )
{
       myForm.textboxFirstName.Text = "Daniel";
       myForm.textboxLastName.Text = "Smith";
       var dialogResult = myForm.ShowDialog();
}        

 

Muestra el formulario "FormName" como cuadro de diálogo. Los cuadros de texto ya están inicializados:

 

CreateForm

 

DialogResult se puede evaluar con:

 

if ( dialogResult == CLR.Static( "System.Windows.Forms.DialogResult" ).OK )
       alert( "ok" );
else
       alert( "cancel" );

 

 

lastform

Este campo global se puede usar para acceder fácilmente al último objeto Form que se creó.

Valor devuelto: devuelve una referencia al último objeto Form (System.Windows.Forms.Form) que se creó mediante CreateForm() o ShowForm().

 

Ejemplo:

CreateForm( "FormName" );
if ( lastform != null )
{
       lastform.textboxFirstName.Text = "Daniel";
       lastform.textboxLastName.Text = "Smith";
       var dialogResult = lastform.ShowDialog();
}

 

Muestra el formulario "FormName" como cuadro de diálogo. Los cuadros de texto ya están inicializados (como en el ejemplo CreateForm anterior):

 

CreateForm

 

 

doevents()

Procesa todos los mensajes de Windows que estén en la cola de mensajes.

Valor devuelto: Ninguno

 

Ejemplo:

for ( i=0; i < nLongLastingProcess; ++)
{
       // realizar procesos de larga duración
       doevents(); // procesar mensajes de Windows; dar a la interfaz del usuario la oportunidad de actualizarse
}

 

 

watchdog(bEnable : booleano)

Los scripts de larga ejecución que consumen mucha CPU hacen que el guardián pregunte al usuario si el script se debe interrumpir. El método guardián watchdog() se utiliza para deshabilitar o habilitar este comportamiento. El guardián está habilitado por defecto.

Valor devuelto: Ninguno

 

Ejemplo:

watchdog( false );        // deshabilitar guardián. Sabemos que la siguiente instrucción consume mucha CPU pero finalizará con toda seguridad
doCPUIntensiveScript();
watchdog( true );        // volver a habilitar el guardián

 

Consejo práctico:

También puede restaurar el guardián llamando a watchdog(true). Esto puede ser muy práctico antes de ejecutar tareas de larga ejecución (que consumen mucha CPU) para garantizar que tienen asignada la cuota máxima de procesamiento permitida.

 

 

alert(strMessage : cadenaDeTexto) o MsgBox(strMessage : cadenaDeTexto)

Se usa un cuadro de alerta para mostrar un mensaje dado. El usuario debe hacer clic en Aceptar para continuar.

Valor devuelto: Ninguno

 

Ejemplo:

alert( "Hello World" );

 

alert

 

 

confirm(strMessage : cadenaDeTexto)

Abre un cuadro de diálogo que muestra el mensaje de confirmación dado. Los cuadros de confirmación se usan a menudo para verificar o aceptar algo. El usuario debe hacer clic en Aceptar o Cancelar para continuar.

Valor devuelto: un booleano que representa la respuesta del usuario. Si el usuario hace clic en Aceptar, el cuadro de diálogo devuelve true. Si hace clic en Cancelar, el cuadro de diálogo devuelve false.

 

Ejemplo:

if ( confirm( "Continue processing?" ) == false )
       return;

 

confirm

 

 

prompt(strMessage : cadenaDeTexto, strDefault : cadenaDeTexto)

Abre un cuadro de diálogo que muestra el mensaje de solicitud dado y un cuadro de texto con una respuesta predeterminada. Los cuadros de solicitud suelen usarse para introducir un valor de cadena sencillo.

Valor devuelto: una cadena que contiene el valor del cuadro de texto o null si el usuario hizo clic en Cancelar.

 

Ejemplo:

var name = prompt( "Please enter your name", "Daniel Smith" );
if ( name != null )
       alert( "Hello " + name + "!" );        

 

prompt

 

 

Comandos de interoperabilidad de .NET

Bajo CLR se ofrecen algunas funciones .NET más para permitir una mayor interoperabilidad.

 

 

CLR.Import(strNamespaceCLR : cadenaDeTexto)

Este es el equivalente a la palabra clave using de C# e imports de VB.Net. Permite obviar los espacios de nombres dados en las llamadas sucesivas, como en CLR.Create() y CLR.Static().

Valor devuelto: ninguno

 

Ejemplo:

En lugar de tener que usar siempre nombres completos:

 

if ( ShowForm( "FormName" ) == CLR.Static( "System.Windows.Forms.DialogResult" ).OK )
{
       var sName = lastform.textboxFirstName.Text + " " + lastform.textboxLastName.Text;
       CLR.Static( "System.Windows.Forms.MessageBox" ).Show( "Hello " + sName );
}

 

 se pueden importar los espacios de nombres y usar la forma abreviada:

 

CLR.Import( "System.Windows.Forms" );
if ( ShowForm( "FormName" ) == CLR.Static( "DialogResult" ).OK )
{
       var sName = lastform.textboxFirstName.Text + " " + lastform.textboxLastName.Text;
       CLR.Static( "MessageBox" ).Show( "Hello " + sName );
}

 

Nota importante:

Al importar un espacio de nombres no se añade ni se carga el ensamblado correspondiente al proyecto de scripting.

Los ensamblados se pueden agregar al proyecto de scripting de forma dinámica (en tiempo de ejecución) en el código fuente con ayuda de CLR.LoadAssembly.

 

 

CLR.ShowImports()

Abre un cuadro de diálogo MessageBox que muestra los espacios de nombres importados actualmente. El usuario debe hacer clic en Aceptar para continuar.

Valor devuelto: Ninguno

 

Ejemplo:

CLR.ShowImports();

 

ShowImports

 

 

CLR.LoadAssembly(strAssemblyNameCLR : cadenaDeTexto)

Carga el ensamblado .NET con el nombre de ensamblado dado o con la ruta de acceso de archivo dada.

Valor devuelto: un valor booleano. True si se cargó el ensamblado. False si no se cargó.

 

Ejemplo:

// establecer el texto del portapapeles (si es posible)
// System.Windows.Clipboard es parte del ensamblado PresentationCore, así que queremos cargar este ensamblado primero:
if ( CLR.LoadAssembly( "PresentationCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", true ) )
{
       var clipboard = CLR.Static( "System.Windows.Clipboard" );
       if ( clipboard != null )
               clipboard.SetText( "HelloClipboard" );
}

 

 

CLR.ShowLoadedAssemblies()

Abre un cuadro de diálogo MessageBox que enumera los ensamblados que están cargados actualmente. El usuario debe hacer clic en Aceptar para continuar.

Valor devuelto: Ninguno

 

Ejemplo:

CLR.ShowLoadedAssemblies();

 

ShowLoadedAssemblies

 

 

CLR.Create(strTypeNameCLR : cadenaDeTexto, argumentos del constructor ...)

Crea una nueva instancia de objeto .NET para el typeName dado. Si se pasa más de un argumento los argumentos sucesivos se interpretan como argumentos para el constructor del objeto .NET.

Valor devuelto: una referencia al objeto .NET creado

 

Ejemplos:

var objArray = CLR.Create("System.Collections.ArrayList");

 

var newItem = CLR.Create( "System.Windows.Forms.ListViewItem", "NewItemText" );

 

var coll = CLR.Create( "System.Collections.Generic.List<System.String>" );

 

CLR.Import( "System" );
CLR.Import( "System.Collections.Generic" );
var dictionary = CLR.Create( "Dictionary< String, Dictionary< String, String > >" );

 

 

CLR.Static(strTypeNameCLR : cadenaDeTexto)

Da acceso a los tipos de .NET que no tienen instancias y que solo contienen miembros estáticos.

Valor devuelto: una referencia al objeto .NET estático

 

Ejemplo:

var enumValStretch = CLR.Static( "System.Windows.Forms.ImageLayout" ).Stretch

 

var clipboard = CLR.Static( "System.Windows.Clipboard" );
clipboard.SetText( "HelloClipboard" );

 

if ( ShowForm( "FormName" ) == CLR.Static( "System.Windows.Forms.DialogResult" ).OK )
       alert( "ok" );
else
       alert( "cancel" );

 


© 2019 Altova GmbH