Usina BRAdvPL Guia
Entrar
← Todos os tópicos
COMANDOPublicado

@ ... FOLDER

@ <nRow>, <nCol> FOLDER <oFolder> [OF <oWnd>] [PROMPTS <cItem,...>] [OPTION <nOption>] [SIZE <nWidth>, <nHeight>] [PIXEL]

Cria um contêiner TFolder com abas para organizar componentes visuais em uma mesma interface.

Interface visualFolderTFolderAbasContêineresComandos
01 · VISÃO GERAL

Visão geral

O comando @ ... FOLDER cria um componente de agrupamento com uma ou mais abas. Durante a compilação, ele é convertido no construtor New() da classe TFolder. As abas podem ser declaradas com PROMPT, PROMPTS ou ITEMS, ou adicionadas posteriormente com AddItem(). Cada área interna fica disponível em oFolder:aDialogs, permitindo criar controles diferentes em cada aba.

02 · SINTAXE

Sintaxe

@ <nRow>, <nCol> FOLDER <oFolder> [OF <oWnd>] [PROMPTS <cItem,...>] [OPTION <nOption>] [SIZE <nWidth>, <nHeight>] [PIXEL]

Parâmetros

nRow, nCol
NuméricoObrigatório

Linha e coluna em que o folder será posicionado. Com PIXEL, as coordenadas partem do canto superior esquerdo do componente pai.

oFolder
ObjetoObrigatório

Variável que receberá o objeto TFolder criado.

OF oWnd
ObjetoOpcional

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

PROMPT / PROMPTS / ITEMS
CaractereOpcional

Títulos das abas. As expressões informadas são tratadas internamente como um array.

OPTION nOption
NuméricoOpcional

Número da aba que deve começar selecionada.

SIZE nWidth, nHeight
NuméricoOpcional

Largura e altura do componente; devem ser definidas na criação ou posteriormente para a exibição correta.

COLOR nClrText
NuméricoOpcional

Cor do texto exibido pelo componente.

MESSAGE cMsg
CaractereOpcional

Dica contextual exibida quando o ponteiro permanece sobre o componente.

PIXEL
CláusulaOpcional

Indica que posição e tamanho usam coordenadas em pixels.

03 · EXEMPLO PRÁTICO

Abas declaradas com PROMPTS

#Include "TOTVS.ch"

User Function ExFolderPrompts()
    Local oDlg
    Local oFolder
    Local cNome := Space(40)
    Local lAtivo := .T.

    Define Dialog oDlg Title "Cadastro" ;
        From 0, 0 To 360, 620 Pixel

    @ 10, 15 Folder oFolder ;
        Prompts "Geral", "Preferências" ;
        Option 1 Size 270, 140 Of oDlg Pixel

    @ 15, 15 Say "Nome:" Of oFolder:aDialogs[1] Pixel
    @ 13, 55 Get cNome Size 150, 10 ;
        Of oFolder:aDialogs[1] Pixel

    @ 15, 15 CheckBox lAtivo Prompt "Cadastro ativo" ;
        Size 100, 15 Of oFolder:aDialogs[2] Pixel

    Activate Dialog oDlg Centered
Return
Resultado esperado

PROMPTS cria duas abas. SAY e GET pertencem à primeira; CHECKBOX pertence à segunda por meio de aDialogs.

04 · EXEMPLO PRÁTICO

Abas adicionadas dinamicamente

#Include "TOTVS.ch"

User Function ExFolderDinamico()
    Local oDlg
    Local oFolder

    Define Dialog oDlg Title "Consulta" ;
        From 0, 0 To 320, 560 Pixel

    @ 10, 15 Folder oFolder Size 240, 120 ;
        Of oDlg Pixel

    oFolder:AddItem("Resumo", .T.)
    oFolder:AddItem("Detalhes", .T.)

    @ 10, 10 Say "Visão resumida" ;
        Of oFolder:aDialogs[1] Pixel
    @ 10, 10 Say "Informações detalhadas" ;
        Of oFolder:aDialogs[2] Pixel

    oFolder:SetOption(1)
    Activate Dialog oDlg Centered
Return
Resultado esperado

AddItem() cria as abas após o componente. SetOption(1) seleciona a primeira.

BOAS PRÁTICAS
  • Inclua TOTVS.ch para disponibilizar o comando ao compilador.
  • Com PROMPTS, as abas são criadas e nomeadas durante a declaração.
  • Sem PROMPTS, use AddItem() para adicionar as abas dinamicamente.
  • Crie os controles internos usando OF oFolder:aDialogs[nAba].
  • Use SetOption() para selecionar uma aba depois da criação.
  • Prefira OF para explicitar o componente pai.
ARMADILHAS COMUNS
  • O índice de aDialogs deve corresponder a uma aba existente; confirme a ordem de criação.
  • O acesso a aDialogs antes de criar as abas produz uma referência inválida.
  • Sem SIZE na criação ou configuração posterior, o folder pode não ser exibido corretamente.
  • Sem OF, o folder será associado à janela ou ao diálogo ativo.
  • Misturar PIXEL com outra unidade pode posicionar ou dimensionar o componente incorretamente.
  • Muitas abas ou conteúdo excessivo reduzem a clareza; agrupe informações relacionadas e use títulos curtos.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. @ ... FOLDER. TDN. Criado por Julio Wittwer; última alteração em 29 maio 2019.
  2. TOTVS. TFolder:New e TFolder:AddItem — classe usada pelo comando. TDN.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR