Uso de componentes de formulario de VBScript

Uso de componentes en formularios de VBScript

Aunque los formularios y componentes se basan en la Visual Component Library (VCL) de Embarcadero Delphi™, el Tool Palette basado en Delphi de Altium Designer se sigue utilizando para colocar controles en un formulario cuando se usa VBScript. Además, los controladores de eventos se generan y el código se escribe en el lenguaje VBScript, independientemente de las raíces Delphi de Formularios/Componentes en Altium Designer.

Descripción general de los componentes

El sistema de scripting maneja dos tipos de componentes: componentes visuales y no visuales. Los componentes visuales se utilizan para crear la interfaz de usuario y los componentes no visuales se utilizan para distintas tareas, como las funciones proporcionadas por los componentes Timer, OpenDialog y MainMenu. Por ejemplo, el componente no visual Timer se utiliza para activar código específico a intervalos programados y el usuario nunca lo ve. Los componentes Button, Edit y Memo son componentes visuales: el usuario sí los ve.

Ambos tipos de componentes aparecen en tiempo de diseño, pero los componentes no visuales no son visibles en tiempo de ejecución. Los componentes del panel Tool Palette están orientados a objetos y tienen los tres elementos siguientes:

  • Propiedades
  • Eventos
  • Métodos

Una property es una característica de un objeto que influye ya sea en el comportamiento visible o en las operaciones de este objeto. Por ejemplo, la propiedad Visible determina si este objeto puede verse en un formulario de script.

Un event es una acción o suceso detectado por el script. En un script, el programador escribe código para cada controlador de eventos diseñado para capturar un evento específico, como un clic del ratón.

Un method es un procedimiento que siempre está asociado con un objeto y define el comportamiento de ese objeto.

Todos los formularios de script tienen uno o más componentes. Los componentes normalmente muestran información o permiten que un usuario realice una acción. Por ejemplo, un Label se usa para mostrar texto estático, un cuadro Edit se usa para permitir que un usuario introduzca algunos datos, y un Button puede usarse para iniciar acciones.

Cualquier combinación de componentes puede colocarse en un formulario, permitiendo que el usuario interactúe con ellos cuando el script se está ejecutando (tiempo de ejecución). Es tarea del programador del script decidir qué sucede cuando un usuario hace clic en un botón o cambia el texto en un cuadro Edit.

El sistema de scripting proporciona una gama de componentes para crear interfaces de usuario simples o complejas para scripts. Todos los componentes que pueden colocarse en un formulario se pueden encontrar en el panel Tool Palette.

Para colocar un componente en un formulario, localice su icono en el panel Tool Palette y haga doble clic en él. Esta acción coloca un componente en el formulario activo en su posición predeterminada, con ancho y alto predeterminados. La representación visual de la mayoría de los componentes está determinada por su conjunto de propiedades asociadas.

Un componente colocado, en su posición y tamaño predeterminados, puede redimensionarse o reposicionarse usando el ratón o mediante el panel Object Inspector. Cuando se suelta un componente en un formulario, el sistema de scripting genera automáticamente el código básico requerido para usar el componente y actualiza el formulario del script. Para que el componente funcione en el formulario, solo queda establecer propiedades, poner código en los controladores de eventos y usar métodos según sea necesario.

Diseño de formularios de script

Un formulario de script está diseñado para interactuar con un usuario dentro del entorno de Altium Designer. El diseño de formularios de script es el núcleo del desarrollo visual en Altium Designer.

Cada componente que se coloca en un formulario de script y cada propiedad que se establece se almacena en un archivo que describe el formulario (un archivo *.dfm) y tiene una relación con el código de script asociado (el archivo *.vbs). Por lo tanto, para cada formulario de script, existe el archivo *.vbs y el archivo *.dfm correspondiente.

Cuando se trabaja con un formulario de script y sus componentes, sus propiedades pueden consultarse y modificarse usando el panel Object Inspector. Se puede seleccionar más de un componente haciendo Mayús-clic en los componentes o arrastrando un rectángulo de selección alrededor de los componentes en el formulario de script. Un formulario de script tiene un título asignado a la propiedad Caption en el panel Object Inspector.

Creación de un nuevo formulario de script

Con un proyecto de script abierto, haga clic con el botón derecho en el proyecto en el panel Projects y seleccione los elementos Add New to Project y luego VB Script Form de los menús contextuales. Se crea un nuevo formulario de script con el nombre predeterminado EditScript1.vbs . Alternativamente, en un proyecto *.PrjPCB, seleccione el comando File » New » Script Files » VB Script Form.

Visualización de un formulario de script

Un script necesita tener una rutina que muestre el formulario cuando el formulario de script se ejecuta en Altium Designer. Dentro de esta rutina, se invoca el método ShowModal para el formulario. La propiedad Visible del formulario debe establecerse en false (desmarcada) para que el método ShowModal del formulario de script funcione correctamente.

Ejemplo de ShowModal

Sub RunDialog
  DialogForm.ShowModal
End Sub

El ejemplo ShowModal anterior es una forma sencilla de mostrar el formulario de script cuando se invoca desde el script el cuadro de diálogo RunDialog. Tenga en cuenta que se pueden asignar valores a los componentes del objeto DialogForm antes de invocar el método DialogForm.ShowModal.

El ejemplo ModalResult que se muestra a continuación es más complejo. Sus últimos métodos se usan para botones en el formulario de script. Los métodos del script hacen que el cuadro de diálogo finalice cuando un usuario hace clic en el botón OK o en el botón Cancel, lo que devolverá mrOk o mrCancel respectivamente desde el método ShowModal.

ModalResult Example

sub bOKButtonClick(Sender)
  ModalResult := mrOK
end sub
 
sub bCancelButtonClick(Sender)
  ModalResult := mrCancel
end sub
 
sub RunShowModalExample
  'Form Visible property must be false for ShowModal to work properly.
  If Form.ShowModal = mrOk     Then ShowMessage("mrOk")
  If Form.ShowModal = mrCancel Then ShowMessage("mrCancel")
end sub

Lo mismo que arriba podría lograrse estableciendo el valor ModalResult en mrOk para el botón OK y en mrCancel para el botón Cancel en sus controladores de eventos. Cuando un usuario hace clic en cualquiera de los botones, el cuadro de diálogo se cierra. No es necesario llamar al método Close, porque cuando se ha establecido el método ModalResult, el motor de script cierra automáticamente el formulario de script.

Tenga en cuenta que, para establecer el ModalResult del formulario en cancel cuando un usuario presiona la tecla Esc, establezca la propiedad Cancel del botón Cancel en true (marcada) en el panel Object Inspector, o inserte Sender.Cancel := True en el controlador de eventos CancelButtonClick del botón del formulario.

Aceptación de entrada del usuario

Uno de los componentes comunes que puede aceptar entrada de un usuario es el componente EditBox. Este componente EditBox tiene un campo de texto donde un usuario puede escribir una cadena de caracteres. También hay otros componentes que pueden aceptar texto, como el componente masked edit, que es un componente edit con una máscara de entrada de campo de texto. La máscara controla, o filtra, la entrada y se almacena en una cadena de parámetros.

El ejemplo siguiente ilustra lo que ocurre cuando un usuario hace clic en el botón después de escribir texto en el cuadro de edición. Tenga en cuenta que, si un usuario no escribió ningún texto en el componente edit, el controlador de eventos responde con un mensaje de advertencia

sub TScriptForm.ButtonClick(Sender)
  If Edit1.Text = "" Then
  ShowMessage("Warning - empty input!")
  Exit
  End
  ' do something else for the input
End sub

Tenga en cuenta que un usuario puede mover el foco de entrada en el formulario usando la tecla Tab o haciendo clic en otro control del formulario.

Respuesta a eventos

Cuando un usuario selecciona un formulario o un componente, Altium Designer envía un mensaje al sistema de scripting, que responde a la notificación del evento llamando al método controlador de eventos apropiado.

Escritura de controladores de eventos

Puede que un script necesite responder a eventos que podrían ocurrirle a un componente en tiempo de ejecución. Un evento es un vínculo entre un suceso en Altium Designer, como hacer clic en un botón, y un fragmento de código que responde a ese suceso. El código de respuesta es un controlador de eventos, que modifica valores de propiedades y llama a métodos.

Junto con las propiedades de un componente, cada uno tiene un conjunto de nombres de eventos. El programador del script decide cómo reaccionará a las acciones del usuario en Altium Designer. Por ejemplo, cuando un usuario hace clic en un botón de un formulario, Altium Designer envía un mensaje al script y el script reacciona a este nuevo evento: si se especifica el evento OnClick para un botón, este se ejecuta.

Todos esos componentes también tienen un evento para obtener y perder el foco. Sin embargo, si no se especifica el código para OnEnter y OnExit (OnEnter - el control tiene el foco; OnExit - el control pierde el foco), el script ignorará el evento.

Propiedades del componente

Para ver una lista de propiedades de un componente, seleccione un componente y active la pestaña Properties en el panel Object Inspector.

Eventos del componente

Para ver una lista de eventos a los que un componente puede reaccionar, seleccione un componente y active la pestaña Events en el panel Object Inspector. Para crear un procedimiento de manejo de eventos para que un componente reaccione, elija un evento adecuado y haga doble clic en su nombre.

Por ejemplo, seleccione el componente Button1 del panel Tool Palette, colóquelo en el formulario de script y haga doble clic junto al nombre del evento OnClick. El sistema de scripting volverá a enfocar el Editor de código, donde se habrá creado el código base para el evento OnClick. Si un botón tiene un método Close en su controlador de eventos CloseClick, cuando se hace clic en el botón, su controlador de eventos captura el evento on-click y se ejecuta el código dentro del controlador de eventos. Es decir, el método Close cierra el formulario de script.

En resumen, se crea un controlador de eventos en un script seleccionando un componente en el formulario, o con el panel Object Inspector, y luego haciendo doble clic a la derecha del evento deseado (por ejemplo, OnClick) en la pestaña Events del Inspector; el marco de código apropiado aparecerá en el script.

Alternativamente, al hacer doble clic en un botón, el sistema de scripting agregará un controlador para un evento OnClick. Otros tipos de componentes tendrán acciones predeterminadas completamente diferentes.

Métodos del componente

Consulte la Referencia de componentes para obtener una lista de métodos de un componente, y consulte la documentación de Embarcadero Delphi para obtener información más detallada.

Creación de componentes en tiempo de ejecución

Los componentes pueden crearse y destruirse directamente en un script. Normalmente no es necesario pasar el identificador del formulario, porque el formulario del script se encarga de ello automáticamente; en su lugar, pase un parámetro Nil al constructor del componente.

Por ejemplo, los cuadros de diálogo Open y Save pueden crearse y destruirse (las clases TOpenDialog y TSaveDialog, como parte de la RTL de Delphi).

AI-LocalizedLocalizado por IA
Si encuentra un problema, seleccione el texto/imagen y presioneCtrl + Enterpara enviarnos sus comentarios.
Disponibilidad de funciones

Las funciones disponibles dependen de la solución de Altium que tenga: Altium Develop, una edición de Altium Agile (Agile Teams o Agile Enterprise), o Altium Designer (con suscripción activa).

Si no ve alguna función mencionada en su software, contacte con Ventas de Altium para obtener más información.

Documentación heredada

La documentación de Altium Designer ya no está versionada. Si necesita acceder a la documentación de versiones anteriores de Altium Designer, visite la sección Documentación heredada de la página de Otros instaladores.

Contenido