Cria um objeto do tipo árvore de itens.
Hierarquia
TSrvObject -> TControl -> TTree -> XTree
MÉTODOS:
New - Método construtor da classe.
Sintaxe
XTree(): New ( [ nTop], [ nLeft], [ nWidth], [ nHeight], [ oOwner], [ uChange], [ uRClick] ) --> oObjeto
Parâmetros
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. |
|
|
Retorno
oObjeto
- Retorna o objeto criado.
Exemplos
oTree := xTree():New(000,000,300,300,oDlg,/*uChange*/,/*uRClick*/,/*bDblClick*/)
__________________________________________________________________________________________________________________________________________________________________
AddItem - Adiciona um item ou subitem na árvore.
Sintaxe
XTree(): AddItem ( cPrompt,cCargo,cResource1,cResource2,nType,bAction,bRClick,bDblClick ) -->
Parâmetros
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. |
|
|
bAction | 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. |
|
|
Observações
- 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.
Exemplos
//Adiciona um novo item abaixo do item posicionado.
oTree:AddItem("Novo Item","0106","folder5.png","folder6.png",2,/*bAction*/,/*bRClick*/,/*bDblClick*/)
__________________________________________________________________________________________________________________________________________________________________
AddTree - Adiciona um item, com nível 1, na árvore.
Sintaxe
XTree(): AddTree ( cPrompt, cResource1, cResource2, cCargo, bAction, bRClick, bDblClick ) -->
Parâmetros
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. |
|
|
bAction | 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. |
|
|
Observações
- 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
Exemplos
//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()
__________________________________________________________________________________________________________________________________________________________________
AddTreeItem - Adiciona um item, na árvore.
Sintaxe
XTree(): AddTreeItem ( cPrompt, cResource, cCargo, bAction, bRClick, bDblClick )
Parâmetros
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. |
|
|
bAction | 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. |
|
|
Observações
- Utilizado para adicionar um item no nó da árvore aberto durante a construção do objeto. Para adicionar dinamicamente, utilizar método AddItem.
Exemplos
//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()
__________________________________________________________________________________________________________________________________________________________________
ChangeBmp - Altera as imagens definidas para a árvore.
Sintaxe
XTree(): ChangeBmp ( cResource1, cResource2, cCargo, lForceUpdate)
Parâmetros
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. |
|
|
lForceUpdate | Lógico | Força a alteração. |
|
|
Exemplos
oTree:ChangeBmp("LBNO","LBTIK","01")
__________________________________________________________________________________________________________________________________________________________________
ChangePrompt - Altera a descrição de um item da árvore.
Sintaxe
XTree(): ChangePrompt ( [ cPrompt], [ cCargo] ) -->
Parâmetros
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. |
|
|
Observações
- Pode se utilizar em conjunto com o método GetCargo para alterar a descrição do item atual.
Exemplos
oTree:ChangePrompt("Novo Texto Item 001","001")
__________________________________________________________________________________________________________________________________________________________________
DelItem - Exclui o item selecionado e, consequentemente, todos os seus subitens.
Sintaxe
XTree(): DeItem ( ) -->
Exemplos
oTree:DelItem()
__________________________________________________________________________________________________________________________________________________________________
EndTree - Indica o término da contrução da árvore.
Sintaxe
XTree(): EndTree ( ) -->
Exemplos
oTree:EndTree()
__________________________________________________________________________________________________________________________________________________________________
GetCargo - Retorna a chave de identificação do item selecionado.
Sintaxe
XTree(): GetCargo ( ) --> cCargo
Retorno
cCargo (caracter)
- Indica a chave de identificação do item selecionado na árvore.
Exemplos
oTree:GetCargo()
__________________________________________________________________________________________________________________________________________________________________
GetFatherNode - Retorna informações do nó pai.
Sintaxe
XTree(): GetFatherNode( ) --> aFather
Retorno
aFather (array)
- Retorna vetor com informações do nó pai no seguinte formato:
- Caracter -> 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
Exemplos
oTree:GetFatherNode() --> aFather
__________________________________________________________________________________________________________________________________________________________________
GetPrompt - Retorna a descrição do item selecionado.
Sintaxe
XTree(): GetPrompt ( ) --> cPrompt
Retorno
cPrompt (caracter)
- Retorna a descrição do item selecionado.
Exemplos
oTree:GetPrompt()
__________________________________________________________________________________________________________________________________________________________________
IsEmpty - Indica se existem itens na árvore.
Sintaxe
XTree(): IsEmpty ( ) --> lIsEmpty
Retorno
lIsEmpty (logico)
- Retorna, verdadeiro (.T.), se a árvore estiver vazia; caso contrário, retornará falso (.F.).
Exemplos
oTree:IsEmpty() // Result: .F.
__________________________________________________________________________________________________________________________________________________________________
Reset - Limpa todos os itens da árvore.
Sintaxe
XTree(): Reset ( ) -->
Exemplos
oTree:Reset()
__________________________________________________________________________________________________________________________________________________________________
TreeSeek - Localiza e posiciona o cursor em um determinado elemento.
Sintaxe
XTree(): TreeSeek ( < cCargo> ) --> lFind
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
cCargo | Caracter | Indica a chave de identificação do elemento na árvore. | X |
|
Retorno
lFind (logico)
- Retorna, verdadeiro (.T.), se o cargo for localizado; caso contrário, retornará falso (.F.)
Exemplos
// 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 XTree","002", "FOLDER10",,,,2)
endif
__________________________________________________________________________________________________________________________________________________________________
EXEMPLOS:
#Include 'Protheus.ch'
User Function tdnXtree()
Local oGet
Local cGet := Space(6)
Local cDescri := Space(10)
DEFINE DIALOG oDlg TITLE "Exemplo de XTree" FROM 0,0 TO 600,800 PIXEL
//-------------------
//Cria o objeto XTREE
//-------------------
oTree := xTree():New(000,000,300,300,oDlg,/*uChange*/,/*uRClick*/,/*bDblClick*/)
//-------
//Nível 1
//-------
oTree:AddTree("01","folder5.png","folder6.png","01",/*bAction*/,/*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(AllTrim(cGet))},40,010,,,.F.,.T.,.F.,,.F.,,,.F. )
TButton():New( 010,300 , "Add Item", oDlg,{|| AddItem(oTree) },40,010,,,.F.,.T.,.F.,,.F.,,,.F. )
TButton():New( 020,300 , "Change BMP", oDlg,{|| oTree: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( 030,300 , "Altera Prompt", oDlg,{|| ChangePrompt(oTree,cDescri)},40,010,,,.F.,.T.,.F.,,.F.,,,.F. )
TButton():New( 040,300 , "Info Pai", oDlg,{|| ShowFatherInfo(oTree)},40,010,,,.F.,.T.,.F.,,.F.,,,.F. )
ACTIVATE DIALOG 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
__________________________________________________________________________________________________________________________________________________________________
PREVIEW
Exemplo da classe XTree()