Componentes visuales en AdvPL
DEFINE ... · @ ... SAY · @ ... GET · @ ... BUTTON · ACTIVATE ...Comprende cómo los comandos visuales ofrecen una sintaxis legible para instanciar y configurar clases de interfaz.
Descripción general
Los comandos de componentes visuales de AdvPL permiten utilizar clases de interfaz mediante instrucciones más sencillas. Durante la compilación, se traducen en llamadas a constructores y métodos de las clases correspondientes. Palabras clave como FROM, TO, SIZE, OF y ACTION facilitan reconocer los parámetros y mejoran la lectura y el mantenimiento.
Sintaxis
DEFINE ... · @ ... SAY · @ ... GET · @ ... BUTTON · ACTIVATE ...Diálogo simple con SAY, GET y BUTTON
#Include "TOTVS.ch"
User Function ExVisual()
Local oDlg
Local cNombre := Space(40)
Define MsDialog oDlg Title "Registro rápido" ;
From 0, 0 To 150, 360 Pixel
@ 20, 20 Say "Nombre:" Size 40, 10 Of oDlg Pixel
@ 18, 65 Get cNombre Size 110, 10 Of oDlg Pixel
@ 50, 65 Button "Confirmar" Size 55, 14 ;
Action MsgInfo("Hola, " + AllTrim(cNombre)) Of oDlg Pixel
Activate MsDialog oDlg Centered
ReturnEl diálogo es el contenedor. SAY muestra una etiqueta, GET edita la variable y BUTTON ejecuta un bloque de acción.
Evento delegado a una función
#Include "TOTVS.ch"
User Function ExAcaoVisual()
Local oDlg
Define MsDialog oDlg Title "Processamento" ;
From 0, 0 To 120, 300 Pixel
@ 35, 85 Button "Executar" Size 55, 14 ;
Action ProcessarPedido() Of oDlg Pixel
Activate MsDialog oDlg Centered
Return
Static Function ProcessarPedido()
MsgInfo("Processamento iniciado")
ReturnEl bloque ACTION queda corto y delega la regla a una función, mejorando la lectura y las pruebas.
Responsabilidades del comando y de la clase
// Forma declarativa por comando:
@ 20, 20 Say "Cliente:" Size 45, 10 Of oDlg Pixel
// Na compilação, o comando é convertido em chamadas
// da classe visual correspondente. A implementação
// exata depende do componente e da versão da LIB.La sintaxis con palabras clave aclara la intención del fuente y la clase aporta el comportamiento real.
- La sintaxis de comandos es una capa proporcionada por el compilador; durante la ejecución, las clases visuales realizan el comportamiento.
- Utiliza OF para identificar explícitamente el diálogo o contenedor propietario del componente.
- Organiza la creación, configuración y activación de la interfaz en un orden claro.
- Los bloques de código se utilizan frecuentemente en ACTION, VALID, WHEN y otros eventos.
- Consulta la documentación del comando o clase para confirmar parámetros, includes y disponibilidad en la LIB utilizada.
- No mezcles coordenadas PIXEL con otras unidades sin comprobar la convención del contenedor.
- Un componente sin la asociación correcta con el diálogo puede no aparecer o tener un ciclo de vida inesperado.
- Los bloques de eventos extensos dificultan el mantenimiento y la depuración; llama a una función dedicada.
- La equivalencia entre comando y clase no implica que todas las opciones de la clase estén expuestas por el comando.
- Las interfaces históricas pueden depender de SmartClient y del contexto de la rutina; confirma la compatibilidad con el entorno y el tipo de ejecución.
