Classe: XTreeCria um objeto do tipo árvore de itens. NewMétodo construtor da classe.XTree(): New ( [ nTop], [ nLeft], [ nWidth], [ nHeight], [ oOwner], [ uChange], [ uRClick] ) --> oObjeto
Nome | Tipo | Descrição | Obrigatório | Referência | nTop | Numérico | Indica a coordenada vertical superior do objeto. |
| |
|
| nLeft | Numérico | Indica a coordenada horizontal à esquerda do objeto. | |
|
| nWidth | Numérico | Indica a coordenada vertical inferior do objeto. | |
|
| nHeight | Numérico | Indica a coordenada horizontal à direita do objeto. |
| |
|
| oOwner | Objeto | Indica a janela ou controle visual onde o objeto será criado. |
| |
|
| uChange | 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. |
| |
|
| uRClick | 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. |
| |
|
| bDblClick | Bloco de código | Indica o bloco de código que será executado quando clicar duas vezes, com o botão direito do mouse, sobre o objeto. |
| |
oObjeto()- Retorna o objeto criado.
ExemplosoTree := xTree():New(000,000,300,300,oDlg,/*uChange*/,/*uRClick*/,/*bDblClick*/) AddItemAdiciona um item ou subitem na árvore.XTree(): AddItem ( cPrompt,cCargo,cResource1,cResource2,nType,bAction,bRClick,bDblClick ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | cPrompt | Caracter | Indica a descrição do novo item. | x | |
| cCargo | Caracter | Indica a chave de identificação do item na árvore. | x |
|
| cResource1 | Caracter | Indica o nome da imagem, no repositório, que será apresentada quando o item estiver fechado. |
| |
|
| cResource2 | Caracter | Indica o nome da imagem, no repositório, que será apresentada quando o item estiver aberto. |
| |
|
| nType | Numérico | Indica o nível que o item ou subitem será adicionado, sendo: 1=No mesmo nível ou 2=Abaixo. |
| | | | | 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. |
|
| bDblClick | Bloco de código |
| | | Indica o bloco de código que será executado quando clicar duas vezes, com o botão direito do mouse, sobre o objeto. |
|
|
- Utilizado para adicionar itens dinamicamente na árvore, depois de sua construção. Para adicionar itens durante a criação do objeto, utilize os métodos AddTree e AddTreeItem.
//Adiciona um novo item abaixo do item posicionado. oTree:AddItem("Novo Item","0106","folder5.png","folder6.png",2,/*bAction*/,/*bRClick*/,/*bDblClick*/) AddTreeAdiciona um item, com nível 1, na árvore.XTree(): AddTree ( cPrompt, cResource1, cResource2, cCargo, bAction, bRClick, bDblClick ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | cPrompt | Caracter | Indica a descrição do novo item. | |
|
| cResource1 | Caracter | Indica o nome da imagem, no repositório, que será apresentada quando o item estiver fechado. |
| |
|
| cResource2 | Caracter | Indica o nome da imagem, no repositório, que será apresentada quando o item estiver aberto. |
| |
|
| cCargo | Caracter | Indica a chave de identificação do item na árvore. |
| | | | | 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 |
bRClick | Bloco de código | | | | bDblClick | | | Indica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto. |
|
| bDblClick | Bloco de código | Indica o bloco de código que será executado quando clicar duas vezes, com o botão direito do mouse, sobre o objeto. |
|
|
- Utilizado para Utilizado para adicionar um nó na árvore durante a construção do objeto. Para adicionar dinamicamente, utilizar método AddItem.
- Após a utilização desse método deve haver a chamada do método EndTree() para fechar o nó construído
//Cria nó na árvore oTree:AddTree("Nó","folder5.png","folder6.png","0101",/*bAction*/,/*bRClick*/,/*bDblClick*/) //Adiciona filhos oTree:AddTreeItem("Nó filho","folder5.png","0102",/*bAction*/,/*bRClick*/,/*bDblClick*/) //Fecha nó criado oTree:EndTree() AddTreeItemAdiciona um item, na árvore.XTree(): AddTreeItem ( cPrompt, cResource, cCargo, bAction, bRClick, bDblClick )
Nome | Tipo | Descrição | Obrigatório | Referência | cPrompt | Caracter | Indica a descrição do novo item. |
| |
|
| cResource | Caracter | Indica o nome da imagem no repositório. |
| |
|
| cCargo | Caracter | Indica a chave de identificação do elemento na árvore. |
| | | | | bRClick | | | | | bDblClick | | | | | 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. |
|
| bDblClick | Bloco de código | Indica o bloco de código que será executado quando clicar duas vezes, com o botão direito do mouse, sobre o objeto. |
|
|
- Utilizado para adicionar um item no nó da árvore aberto durante a construção do objeto. Para adicionar dinamicamente, utilizar método AddItem.
//Cria nó na árvore oTree:AddTree("Nó","folder5.png","folder6.png","0101",/*bAction*/,/*bRClick*/,/*bDblClick*/) //Adiciona filhos oTree:AddTreeItem("Nó filho","folder5.png","0102",/*bAction*/,/*bRClick*/,/*bDblClick*/) //Fecha nó criado oTree:EndTree() ChangeBmpAltera as imagens definidas para a árvore.XTree(): ChangeBmp ( cResource1, cResource2, cCargo, lForceUpdate)
Nome | Tipo | Descrição | Obrigatório | Referência | cResource1 | Caracter | Indica o nome da imagem, no repositório, que será apresentada quando o item estiver fechado. | |
|
| cResource2 | Caracter | Indica o nome da imagem, no repositório, que será apresentada quando o item estiver aberto. | |
|
| cCargo | Caracter | Indica a chave de identificação do item na árvore. |
| | | |
oTree:ChangeBmp("LBNO","LBTIK","01") ChangePromptAltera a descrição de um item da árvore.XTree(): ChangePrompt ( [ cPrompt], [ cCargo] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | cPrompt | Caracter | Indica a nova descrição do item. |
| |
|
| cCargo | Caracter | Indica a chave de identificação do item na árvore. | |
- Pode se utilizar em conjunto com o método GetCargo para alterar a descrição do item atual.
oTree:ChangePrompt("Novo Texto Item 001","001") DeItemExclui o item selecionado e, consequentemente, todos os seus subitens.EndTreeIndica o término da contrução da árvore.GetCargoRetorna a chave de identificação do item selecionado.XTree(): GetCargo ( ) --> cCargo cCargo(caracter)- Indica a chave de identificação do item selecionado na árvore.
GetPromptRetorna a descrição do item selecionado.XTree(): GetPrompt ( ) --> cPrompt cPrompt(caracter)- Retorna a descrição do item selecionado.
oTree:GetCargo() GetFatherNodeXTree(): GetFatherNode( ) --> aFather aFather(array)- Retorna vetor com informações do nó pai no seguinte formato:
- Caracter
- Caracter
- L[ogico
- -> ID do nó pai. Caso seja o Root, o ID do pai será "000000"
- Caracter -> ID do nó.
- Lógico - > Se verdadeiro (.T.), indica que é um nó. Se falso (.F.), indica que é um i
- Caracter -> cCargo
- Caracter -> Resource 1
- Caracter -> Resource 2
GetPromptRetorna a descrição do item selecionadoIsEmptyIndica se existem itens na árvore.XTree(): IsEmpty GetPrompt ( ) --> lIsEmptycPrompt cPromptlIsEmpty(logicocaracter)- Retorna a descrição do item selecionado.
IsEmptyIndica se existem itens na árvore.XTree(): IsEmpty ( ) --> lIsEmpty lIsEmpty(logico)- Retorna, verdadeiro (.T.), se a , verdadeiro (.T.), se a árvore estiver vazia; caso contrário, retornará falso (.F.).
oTree:IsEmpty() // Result: .F. ResetLimpa todos os itens da árvore.TreeSeekLocaliza e posiciona o cursor em um determinado elemento.XTree(): TreeSeek ( < cCargo> ) --> lFind
Nome | Tipo | Descrição | Obrigatório | Referência | cCargo | Caracter | Indica a chave de identificação do elemento na árvore. | X |
|
lFind(logico)- Retorna, verdadeiro (.T.), se o cargo for localizado; caso contrário, retornará falso (.F.)
// Localiza o Cargo 001 e posiciona o cursor // para que o segundo nível seja criado abaixo dele // ----------------------------------------------------- if oTree:TreeSeek("001") oTree:AddItem("Segundo nível da DBTreeXTree","002", "FOLDER10",,,,2) endif #include#Include "TOTVS.CH"'Protheus.ch' User Function DbTreetdnXtree() Local oGet Local cGet := Space(6) Local cDescri := Space(10) DEFINE DIALOG oDlg TITLE "Exemplo de DBTreeXTree" FROM 1800, 1800 TO 550600, 700800 PIXEL // Cria a Tree ------------------- //Cria o objeto XTREE //------------------- oTree := DbTreexTree():New( 0000, 0000, 160300, 260300,oDlg, ,,.T.) /*uChange*/,/*uRClick*/,/*bDblClick*/) //------- //Nível Insere itens 1 //------- oTree: AddItemAddTree(" Primeiro nível da DBTree01"," 001folder5.png", " FOLDER5folder6.png" ,"01",/*bAction*/, ,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"/*bRClick*/,/*bDblClick*/) //------- //Nível 2 //------- oTree:AddTree("Teste","folder5.png","folder6.png","0101",/*bAction*/,/*bRClick*/,/*bDblClick*/) oTree:EndTree() oTree:AddTree("0101","folder5.png","folder6.png","0101",/*bAction*/,/*bRClick*/,/*bDblClick*/) //------- //Nível 3 //------- oTree:AddTreeItem("0102","folder5.png","0102",/*bAction*/,/*bRClick*/,/*bDblClick*/) oTree:EndTree() oTree:AddTree("0103","folder5.png","folder6.png","0103",/*bAction*/,/*bRClick*/,/*bDblClick*/) oTree:EndTree() oTree:EndTree() //--------------- //Funcionalidades //--------------- @ 000,340 GET oGet VAR cGet OF oDlg SIZE 40, 010 PIXEL TButton():New( 0,300 , "Seek Item", oDlg,{|| oTree:TreeSeek ("004")}; (AllTrim(cGet))},40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 160010,300 052, " EnableAdd Item" , oDlg,{|| AddItem(oTree :SetEnable() } ; ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 160020,300 102, " DisableChange BMP" , oDlg,{|| oTree: SetDisable(ChangeBmp("LBNO","LBTIK","01") } ; ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) @ 030,340 GET oGet1 VAR cDescri OF oDlg SIZE 40, 010 PIXEL TButton():New( 160030,300 152, " NovoAltera ItemPrompt", oDlg,{|| TreeNewItChangePrompt(oTree,cDescri) } ; ,40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 172040, 02300 , " DadosInfo do itemPai", oDlg,{|| ; Alert("Cargo: "+oTree:GetCargo()+chr(13)+"Texto: "+oTree:GetPrompt(.T.)) },; 40,10,,,ShowFatherInfo(oTree)},40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) ACTIVATE DIALOG 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) endifReturn oDlg CENTERED Return Static Function ChangePrompt(oTree,cDescri) oTree:ChangePrompt(cDescri,oTree:GetCargo()) Return Static Function AddItem(oTree)
If oTree:TreeSeek("0102") oTree:AddItem("Novo Item","0106","folder5.png","folder6.png",2,/*bAction*/,/*bRClick*/,/*bDblClick*/) EndIf Return Static Function ShowFatherInfo(oTree) Local aInfo := oTree:GetFatherNode() Local cMessage If Len(aInfo) > 0 cMessage := "ID do Pai : " + aInfo[1] + CRLF cMessage += "ID : " + aInfo[2] + CRLF cMessage += "É nó? : " + IIf(aInfo[3],".T.",".F.") + CRLF cMessage += "cCargo : " + aInfo[4] + CRLF cMessage += "cResource1: " + aInfo[5] + CRLF cMessage += "cResource2: " + aInfo[6] + CRLF MsgInfo(cMessage,"Info do nó pai") EndIf Return Exemplo da classe XTree()Image AddedExemplo da classe DBTree()Image Removed Microsiga Protheus 8.11 , Microsiga Protheus 11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
|