Usina BRAdvPL Guia
Entrar
← Todos os tópicos
FUNDAMENTOPublicado

Componentes visuais em AdvPL

DEFINE ... · @ ... SAY · @ ... GET · @ ... BUTTON · ACTIVATE ...

Entenda como comandos visuais oferecem uma sintaxe legível para instanciar e configurar classes de interface.

Interface visualComponentesComandosClassesDiálogos
01 · VISÃO GERAL

Visão geral

Os comandos de componentes visuais do AdvPL permitem utilizar classes da interface por meio de instruções mais simples. Durante a compilação, esses comandos são traduzidos para chamadas de construtores e métodos das classes correspondentes. Palavras-chave como FROM, TO, SIZE, OF e ACTION tornam os parâmetros mais reconhecíveis e ajudam na leitura e manutenção do código.

02 · SINTAXE

Sintaxe

DEFINE ... · @ ... SAY · @ ... GET · @ ... BUTTON · ACTIVATE ...
03 · EXEMPLO PRÁTICO

Diálogo simples com SAY, GET e BUTTON

#Include "TOTVS.ch"

User Function ExVisual()
    Local oDlg
    Local cNome := Space(40)

    Define MsDialog oDlg Title "Cadastro rápido" ;
        From 0, 0 To 150, 360 Pixel

    @ 20, 20 Say "Nome:" Size 40, 10 Of oDlg Pixel
    @ 18, 65 Get cNome Size 110, 10 Of oDlg Pixel
    @ 50, 65 Button "Confirmar" Size 55, 14 ;
        Action MsgInfo("Olá, " + AllTrim(cNome)) Of oDlg Pixel

    Activate MsDialog oDlg Centered
Return
Resultado esperado

O diálogo funciona como contêiner. SAY apresenta o rótulo, GET edita a variável e BUTTON executa um bloco de ação.

04 · EXEMPLO PRÁTICO

Evento encaminhado para uma função

#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")
Return
Resultado esperado

O bloco de ACTION permanece curto e delega a regra a uma função, facilitando leitura e teste.

05 · EXEMPLO PRÁTICO

Comando e classe: responsabilidades

// 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.
Resultado esperado

A sintaxe por palavras-chave melhora a intenção do fonte, enquanto a classe fornece o comportamento efetivo do componente.

BOAS PRÁTICAS
  • A sintaxe de comando é uma camada oferecida pelo compilador; em execução, o comportamento é realizado pelas classes visuais correspondentes.
  • Use OF para deixar explícito o diálogo ou contêiner ao qual o componente pertence.
  • Agrupe criação, configuração e ativação da interface em uma ordem clara.
  • Blocos de código são usados com frequência em ACTION, VALID, WHEN e outros eventos dos componentes.
  • Consulte a documentação do comando ou da classe para confirmar parâmetros, includes e disponibilidade na LIB utilizada.
ARMADILHAS COMUNS
  • Não misture coordenadas em PIXEL com outras unidades sem verificar o padrão esperado pelo contêiner.
  • Um componente criado sem associação correta ao diálogo pode não aparecer ou ter ciclo de vida inesperado.
  • Blocos de evento extensos dificultam manutenção e depuração; prefira chamar uma função dedicada.
  • A equivalência entre comando e classe não significa que todas as opções da classe estejam necessariamente expostas pela sintaxe do comando.
  • Interfaces históricas podem depender de SmartClient e do contexto da rotina; confirme a compatibilidade com o ambiente e o tipo de execução.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. Componentes Visuais. TDN. Criado por Julio Wittwer; última alteração em 27 mai. 2019.
  2. Guia de Referência e eADVPL. Documento sem autoria indicada, criado em 28 jul. 2005. Arquivo PDF fornecido ao projeto. Seção relacionada: p. 11–25. Referência histórica; sintaxe conferida prioritariamente em fonte atual.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR