Páginas filhas
  • XTree()

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

 
Portuguese

Pagetitle
XTree
XTree

Classe: XTree

Cria um objeto do tipo árvore de itens.

TSrvObject -> TControl -> TTree -> XTree


New

Método construtor da classe.


XTree(): New ( [ nTop], [ nLeft], [ nWidth], [ nHeight], [ oOwner], [ uChange], [ uRClick] ) --> oObjeto



 

NomeTipoDescriçãoObrigatórioReferência
nTopNuméricoIndica a coordenada vertical superior do objeto.
 


nLeftNuméricoIndica a coordenada horizontal à esquerda do objeto.
 
 


nWidthNuméricoIndica a coordenada vertical inferior do objeto.
 
 


nHeightNuméricoIndica a coordenada horizontal à direita do objeto.
  


oOwnerObjetoIndica a janela ou controle visual onde o objeto será criado.
  


uChangeBloco de códigoIndica o bloco de código que será executado quando o estado ou conteúdo do objeto é modificado pela ação sobre o controle visual.
  


uRClickBloco de códigoIndica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto.
  


bDblClickBloco de códigoIndica 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.

Exemplos
oTree := xTree():New(000,000,300,300,oDlg,/*uChange*/,/*uRClick*/,/*bDblClick*/)

Métodos

AddItem

Adiciona um item ou subitem na árvore.


XTree(): AddItem ( cPrompt,cCargo,cResource1,cResource2,nType,bAction,bRClick,bDblClick ) -->



 

NomeTipoDescriçãoObrigatórioReferência
cPromptCaracterIndica a descrição do novo item.x
 

cCargoCaracterIndica a chave de identificação do item na árvore.x
 

cResource1CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver fechado.
  


cResource2CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver aberto.
  


nTypeNuméricoIndica o nível que o item ou subitem será adicionado, sendo: 1=No mesmo nível ou 2=Abaixo.
  


bActionBloco 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.

bRClickBloco de código
  
Indica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto.

bDblClickBloco 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*/)

AddTree

Adiciona um item, com nível 1, na árvore.


XTree(): AddTree ( cPrompt, cResource1, cResource2, cCargo, bAction, bRClick, bDblClick ) -->



 

NomeTipoDescriçãoObrigatórioReferência
cPromptCaracterIndica a descrição do novo item.
 
 


cResource1CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver fechado.
  


cResource2CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver aberto.
  


cCargoCaracterIndica a chave de identificação do item na árvore.
  


bActionBloco 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
bRClickBloco de código   bDblClick
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.

bDblClickBloco de códigoIndica 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()

AddTreeItem

Adiciona um item, na árvore.


XTree(): AddTreeItem ( cPrompt, cResource, cCargo, bAction, bRClick, bDblClick )


 


NomeTipoDescriçãoObrigatórioReferência
cPromptCaracterIndica a descrição do novo item.
  


cResourceCaracterIndica o nome da imagem no repositório.
  


cCargoCaracterIndica a chave de identificação do elemento na árvore.
  


bAction
    bRClick    bDblClick    
 
Bloco de códigoIndica o bloco de código que será executado quando o estado ou conteúdo do objeto é modificado pela ação sobre o controle visual.

bRClickBloco de códigoIndica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto.

bDblClickBloco de códigoIndica 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()

ChangeBmp

Altera as imagens definidas para a árvore.


XTree(): ChangeBmp ( cResource1, cResource2, cCargo, lForceUpdate)


 


NomeTipoDescriçãoObrigatórioReferência
cResource1CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver fechado.
 
 


cResource2CaracterIndica o nome da imagem, no repositório, que será apresentada quando o item estiver aberto.
 
 


cCargoCaracterIndica a chave de identificação do item na árvore.
  


lForceUpdateLógico
   

 

Força a alteração.




oTree:ChangeBmp("LBNO","LBTIK","01")

ChangePrompt

Altera a descrição de um item da árvore.


XTree(): ChangePrompt ( [ cPrompt], [ cCargo] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cPromptCaracterIndica a nova descrição do item.
  


cCargoCaracterIndica 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")

DeItem

Exclui o item selecionado e, consequentemente, todos os seus subitens.


XTree(): DeItem ( ) -->


oTree:DelItem()

EndTree

Indica o término da contrução da árvore.


XTree(): EndTree ( ) -->


oTree:EndTree()

GetCargo

Retorna a chave de identificação do item selecionado.


XTree(): GetCargo ( ) --> cCargo

cCargo
    (caracter)
  • Indica a chave de identificação do item selecionado na árvore.


 


GetPrompt

Retorna a descrição do item selecionado.

XTree(): GetPrompt ( ) --> cPrompt

cPrompt
    (caracter)
  • Retorna a descrição do item selecionado.
oTree:GetCargo()
 

GetFatherNode

Retorna informações do nó pai.


XTree(): GetFatherNode( ) --> aFather


aFather
    (array)
  • Retorna vetor com informações do nó pai no seguinte formato:
    1. Caracter
    2. Caracter
    3. L[ogico
oTree:GetFatherNode()
 
    1. -> ID do nó pai. Caso seja o Root, o ID do pai será "000000"
    2. Caracter -> ID do nó.
    3. Lógico - > Se verdadeiro (.T.), indica que é um nó. Se falso (.F.), indica que é um i
    4. Caracter -> cCargo
    5. Caracter -> Resource 1
    6. Caracter -> Resource 2

GetPrompt
GetFatherNode()
 --> aFather
 

GetPrompt

Retorna a descrição do item selecionado

IsEmpty

Indica se existem itens na árvore

.


XTree(): IsEmpty GetPrompt ( ) --> lIsEmptycPrompt


cPromptlIsEmpty
    (logicocaracter)
  • Retorna a descrição do item selecionado.


oTree:GetPrompt()

IsEmpty

Indica 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.

Reset

Limpa todos os itens da árvore.


XTree(): Reset ( ) -->



 


oTree:Reset()

TreeSeek

Localiza e posiciona o cursor em um determinado elemento.


XTree(): TreeSeek ( < cCargo> ) --> lFind


 


NomeTipoDescriçãoObrigatórioReferência
cCargoCaracterIndica 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 
DbTree
tdnXtree()
Local oGet
Local cGet := Space(6)
Local cDescri
:= Space(10)
DEFINE DIALOG oDlg TITLE "Exemplo de
DBTree
XTree" FROM 
180
0,
180
0 TO 
550
600,
700
800 PIXEL


//
Cria a Tree
-------------------
//Cria o objeto XTREE
//-------------------
oTree :=
DbTree
xTree():New(
0
000,
0
000,
160
300,
260
300,oDlg,
,,.T.)
/*uChange*/,/*uRClick*/,/*bDblClick*/)

//-------
//Nível
Insere itens
1
//-------
oTree:
AddItem
AddTree("
Primeiro nível da DBTree
01","
001
folder5.png",
"
FOLDER5
folder6.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(
160
010,300 
052
, "
Enable
Add Item"
, oDlg,{|| AddItem(oTree
:SetEnable(
) }
;
,40,010,,,.F.,.T.,.F.,,.F.,,,.F. )

TButton():New(
160
020,300 
102
, "
Disable
Change 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(
160
030,300 
152
, "
Novo
Altera 
Item
Prompt", oDlg,{|| 
TreeNewIt
ChangePrompt(oTree,cDescri)
}
;
,40,010,,,.F.,.T.,.F.,,.F.,,,.F. )

TButton():New( 
172
040,
02
300 , "
Dados
Info 
do item
Pai", 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