Vamos aprender como usar a Classe: DBTree para criar um objeto do tipo árvore de itens.
Sintaxe:
DBTree(): New ( [ nTop], [ nLeft], [ nBottom], [ nRight], [ oWnd], [ bChange], [ bRClick], [ lCargo], [ lDisable], [ oFont] ) –> oObjeto
Parâmetros:
- nTop = Numérico = Indica a coordenada vertical superior do objeto.
- nLeft = Numérico = Indica a coordenada horizontal à esquerda do objeto.
- nBottom = Numérico = Indica a coordenada vertical inferior do objeto.
- nRight = Numérico = Indica a coordenada horizontal à direita do objeto.
- oWnd = Objeto = Indica a janela ou controle visual onde o objeto será criado.
- bChange = Bloco de código = Indica o bloco de código que será executado quando o estado ou conteúdo do objeto é modificado pela ação sobre o controle visual.
- bRClick = Bloco de código = Indica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto.
- lCargo = Lógico = Indica se, verdadeiro (.T.), os elementos da Tree utilizarão a propriedade cCargo, do método AddItem(), que armazena uma string identificadora, para cada elemento e item da árvore; caso contrário, falso (.F.).
- lDisable = Lógico = Indica se, verdadeiro (.T.), cria o objeto da Tree desabilitado, ou seja, não permitindo foco e navegação no mesmo até que seja habilitado; caso contrário, falso (.F.).
- oFont = Objeto = Indica o objeto do tipo TFont utilizado para definir as características da fonte aplicada na exibição do conteúdo do controle visual.
- Retorno
oObjeto()
Retorna o objeto criado.
Tela mostrando o Exemplo: https://tdn.totvs.com/command/getimage?key=fileName%3DDBTree.jpg%2Cmime%3Dimage%2Fpjpeg%2Ctimestamp%3D1314292833245
#include "TOTVS.CH" User Function DbTree() DEFINE DIALOG oDlg TITLE "Exemplo de DBTree" FROM 180,180 TO 550,700 PIXEL // Cria a Tree oTree := DbTree():New(0,0,160,260,oDlg,,,.T.) // Insere itens oTree:AddItem("Primeiro nível da DBTree","001", "FOLDER5" ,,,,1) If oTree:TreeSeek("001") oTree:AddItem("Segundo nível da DBTree","002", "FOLDER10",,,,2) If oTree:TreeSeek("002") oTree:AddItem("Subnível 01","003", "FOLDER6",,,,2) oTree:AddItem("Subnível 02","004", "FOLDER6",,,,2) oTree:AddItem("Subnível 03","005", "FOLDER6",,,,2) endif endif oTree:TreeSeek("001") // Retorna ao primeiro nível // Cria botões com métodos básicos TButton():New( 160, 002, "Seek Item 4", oDlg,{|| oTree:TreeSeek("004")}; ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 160, 052, "Enable" , oDlg,{|| oTree:SetEnable() }; ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 160, 102, "Disable" , oDlg,{|| oTree:SetDisable() }; ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 160, 152, "Novo Item", oDlg,{|| TreeNewIt() }; ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 172,02,"Dados do item", oDlg,{|| ; Alert("Cargo: "+oTree:GetCargo()+chr(13)+"Texto: "+oTree:GetPrompt(.T.)) },; 40,10,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 172, 052, "Muda Texto", oDlg,{|| ; oTree:ChangePrompt("Novo Texto Item 001","001") },; 40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 172, 102, "Muda Imagem", oDlg,{||; oTree:ChangeBmp("LBNO","LBTIK",,,"001") },; 40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 172, 152, "Apaga Item", oDlg,{|| ; if(oTree:TreeSeek("006"),oTree:DelItem(),) },; 40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) // Indica o término da contrução da Tree oTree:EndTree() ACTIVATE DIALOG oDlg CENTERED Return //---------------------------------------- // Função auxiliar para inserção de item //---------------------------------------- Static Function TreeNewIt() // Cria novo item na Tree oTree:AddTreeItem("Novo Item","FOLDER7",,"006") if oTree:TreeSeek("006") oTree:AddItem("Sub-nivel 01","007", "FOLDER6",,,,2) oTree:AddItem("Sub-nivel 02","008", "FOLDER6",,,,2) endif Return