Usina BRGuía AdvPL
Ingresar
← Todos los temas
COMANDOPublicado

@ ... MSPANEL

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

Crea un contenedor TPanel que organiza y aloja otros componentes visuales.

Interfaz visualMSPanelTPanelContenedoresDiseñoComandos
01 · DESCRIPCIÓN GENERAL

Descripción general

El comando @ ... MSPANEL crea un panel de agrupación que puede ser el componente padre de SAY, GET, BUTTON y otros controles. Durante la compilación se traduce al constructor New() de la clase TPanel. A diferencia de TGroup, que solo dibuja un marco, el panel es un contenedor real y establece una nueva área de posicionamiento para sus componentes hijos.

02 · SINTAXIS

Sintaxis

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

Parámetros

nRow, nCol
NuméricoObligatorio

Fila y columna donde se coloca el panel dentro del componente padre.

oPanel
ObjetoObligatorio

Variable que recibe el objeto TPanel creado.

PROMPT / VAR cPrompt
CaractereOpcional

Título mostrado en el área interna del panel.

OF oWnd
ObjetoOpcional

Diálogo, panel u otro contenedor propietario del nuevo panel. OF es recomendado.

FONT oFont
ObjetoOpcional

Fuente diferente utilizada como predeterminada por los componentes internos.

CENTERED / CENTER
CláusulaOpcional

Centra el título; por defecto aparece en la esquina superior izquierda interna.

COLOR / COLORS nClrText, nClrBack
NuméricoOpcional

Color del texto y, opcionalmente, color de fondo del panel.

SIZE nWidth, nHeight
NuméricoOpcional

Ancho y alto del panel; deben definirse durante o después de la creación.

LOWERED
CláusulaOpcional

Dibuja bordes derecho e inferior para una apariencia rebajada.

RAISED
CláusulaOpcional

Dibuja bordes izquierdo y superior para una apariencia elevada.

03 · EJEMPLO PRÁCTICO

Panel como contenedor de campos

#Include "TOTVS.ch"

User Function ExMsPanel()
    Local oDlg
    Local oPanel
    Local cNombre := Space(40)
    Local lActivo := .T.

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

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

    @ 20, 15 Say "Nombre:" Of oPanel Pixel
    @ 18, 60 Get cNombre Size 150, 12 Of oPanel Pixel
    @ 50, 15 CheckBox lActivo Prompt "Registro activo" ;
        Size 100, 15 Of oPanel Pixel

    Activate Dialog oDlg Centered
Return
Resultado esperado

SAY, GET y CHECKBOX pertenecen a oPanel y se posicionan dentro de su área.

04 · EJEMPLO PRÁCTICO

Paneles con estilos de borde

#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 y LOWERED diferencian visualmente las áreas y mantienen los controles en sus respectivos contenedores.

BUENAS PRÁCTICAS
  • Incluye TOTVS.ch para que el compilador reconozca el comando.
  • Crea los controles internos con OF oPanel para que realmente pertenezcan al panel.
  • Las coordenadas de los hijos son relativas al área del panel.
  • Utiliza PROMPT con CENTERED cuando el panel represente una sección identificada.
  • FONT puede proporcionar la fuente predeterminada de los componentes hijos.
  • La propiedad Align heredada de TControl permite ajustar dinámicamente el panel a su componente padre.
  • Prefiere OF para hacer explícita la jerarquía visual.
ERRORES COMUNES
  • No confundas MSPANEL con GROUP: solo el primero funciona como componente padre.
  • Sin SIZE durante la creación o configuración posterior, el panel puede no mostrarse correctamente.
  • Los controles creados con OF oDlg en lugar de OF oPanel no siguen la jerarquía ni el posicionamiento del panel.
  • Sin OF, el panel se asocia a la ventana o diálogo activo.
  • RAISED y LOWERED cambian la apariencia del borde, no el comportamiento del contenido.
  • Jerarquías profundas de paneles dificultan el mantenimiento y posicionamiento; utiliza solo los niveles necesarios.

Contenido relacionado

REFERENCIAS
  1. TOTVS. @ ... MSPANEL. TDN. Creado por Julio Wittwer; última modificación el 29 de mayo de 2019.
  2. TOTVS. TPanel:New — constructor utilizado por el comando. TDN.
  3. TOTVS. TControl:Align — alineación dinámica del panel. TDN.
Estado
Publicado
Página creada el
Última revisión el
Idioma original
Portugués
Revisión
Usina.BR