Usina BRAdvPL Guia
Entrar
← Todos os tópicos
COMANDOPublicado

@ ... MSPANEL

@ <nRow>, <nCol> MSPANEL <oPanel> [PROMPT <cPrompt>] [OF <oWnd>] [FONT <oFont>] [CENTERED] [COLORS <nClrText>, <nClrBack>] [SIZE <nWidth>, <nHeight>] [LOWERED | RAISED]

Cria um contêiner TPanel que organiza e hospeda outros componentes visuais.

Interface visualMSPanelTPanelContêineresLayoutComandos
01 · VISÃO GERAL

Visão geral

O comando @ ... MSPANEL cria um painel de agrupamento que pode ser usado como componente pai de SAY, GET, BUTTON e outros controles. Durante a compilação, ele é convertido no construtor New() da classe TPanel. Diferentemente de TGroup, que apenas desenha uma moldura, o painel é um contêiner real e estabelece uma nova área de posicionamento para seus componentes filhos.

02 · SINTAXE

Sintaxe

@ <nRow>, <nCol> MSPANEL <oPanel> [PROMPT <cPrompt>] [OF <oWnd>] [FONT <oFont>] [CENTERED] [COLORS <nClrText>, <nClrBack>] [SIZE <nWidth>, <nHeight>] [LOWERED | RAISED]

Parâmetros

nRow, nCol
NuméricoObrigatório

Linha e coluna em que o painel será posicionado dentro do componente pai.

oPanel
ObjetoObrigatório

Variável que receberá o objeto TPanel criado.

PROMPT / VAR cPrompt
CaractereOpcional

Título apresentado na área interna do painel.

OF oWnd
ObjetoOpcional

Diálogo, painel ou outro contêiner proprietário do novo painel. OF é a forma recomendada.

FONT oFont
ObjetoOpcional

Fonte diferenciada que será usada como padrão pelos componentes internos.

CENTERED / CENTER
CláusulaOpcional

Centraliza o título do painel; por padrão ele aparece no canto superior esquerdo interno.

COLOR / COLORS nClrText, nClrBack
NuméricoOpcional

Cor do texto e, opcionalmente, cor de fundo do painel.

SIZE nWidth, nHeight
NuméricoOpcional

Largura e altura do painel; devem ser definidas na criação ou posteriormente.

LOWERED
CláusulaOpcional

Desenha bordas à direita e na parte inferior, produzindo aparência rebaixada.

RAISED
CláusulaOpcional

Desenha bordas à esquerda e na parte superior, produzindo aparência elevada.

03 · EXEMPLO PRÁTICO

Painel como contêiner de campos

#Include "TOTVS.ch"

User Function ExMsPanel()
    Local oDlg
    Local oPanel
    Local cNome := Space(40)
    Local lAtivo := .T.

    Define Dialog oDlg Title "Cadastro" ;
        From 100, 100 To 340, 600 Pixel

    @ 10, 15 MsPanel oPanel Prompt "Dados principais" ;
        Colors CLR_BLACK, CLR_HGRAY Size 250, 90 ;
        Of oDlg Raised

    @ 20, 15 Say "Nome:" Of oPanel Pixel
    @ 18, 60 Get cNome Size 150, 12 Of oPanel Pixel
    @ 50, 15 CheckBox lAtivo Prompt "Cadastro ativo" ;
        Size 100, 15 Of oPanel Pixel

    Activate Dialog oDlg Centered
Return
Resultado esperado

SAY, GET e CHECKBOX pertencem a oPanel; suas posições são calculadas dentro da área do painel.

04 · EXEMPLO PRÁTICO

Painéis com estilos de borda

#Include "TOTVS.ch"

User Function ExPanelBordas()
    Local oDlg
    Local oSuperior
    Local oInferior

    Define Dialog oDlg Title "Áreas da tela" ;
        From 0, 0 To 300, 520 Pixel

    @ 10, 15 MsPanel oSuperior Prompt "Resumo" ;
        Size 220, 45 Of oDlg Raised
    @ 10, 10 Say "Conteúdo em destaque" ;
        Of oSuperior Pixel

    @ 70, 15 MsPanel oInferior Prompt "Detalhes" ;
        Size 220, 55 Of oDlg Lowered
    @ 10, 10 Say "Conteúdo detalhado" ;
        Of oInferior Pixel

    Activate Dialog oDlg Centered
Return
Resultado esperado

RAISED e LOWERED diferenciam visualmente as áreas, mantendo cada conjunto de controles em seu próprio contêiner.

BOAS PRÁTICAS
  • Inclua TOTVS.ch para disponibilizar o comando ao compilador.
  • Crie controles internos com OF oPanel para que pertençam efetivamente ao painel.
  • As coordenadas dos controles filhos são relativas à área do painel.
  • Use PROMPT com CENTERED quando o painel representar uma seção identificada.
  • A fonte informada em FONT pode servir como padrão para os componentes filhos.
  • A propriedade Align, herdada de TControl, permite ajustar o painel dinamicamente à área do componente pai.
  • Prefira OF para tornar explícita a hierarquia visual.
ARMADILHAS COMUNS
  • Não confunda MSPANEL com GROUP: apenas o primeiro funciona como componente pai.
  • Sem SIZE na criação ou configuração posterior, o painel pode não ser exibido corretamente.
  • Controles criados com OF oDlg em vez de OF oPanel não acompanharão corretamente a hierarquia e o posicionamento do painel.
  • Sem OF, o painel será associado à janela ou ao diálogo ativo.
  • RAISED e LOWERED alteram a aparência da borda, não o comportamento do conteúdo.
  • Hierarquias profundas de painéis dificultam manutenção e cálculo de posições; use apenas os níveis necessários.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. @ ... MSPANEL. TDN. Criado por Julio Wittwer; última alteração em 29 maio 2019.
  2. TOTVS. TPanel:New — construtor da classe usada pelo comando. TDN.
  3. TOTVS. TControl:Align — alinhamento dinâmico do painel. TDN.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR