Cria um objeto do tipo árvore de itens.
TSrvObject -> TControl -> TTree -> XTree
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. |
oTree := xTree():New(000,000,300,300,oDlg,/*uChange*/,/*uRClick*/,/*bDblClick*/)
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. | ||
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. |
//Adiciona um novo item abaixo do item posicionado.
oTree:AddItem("Novo Item","0106","folder5.png","folder6.png",2,/*bAction*/,/*bRClick*/,/*bDblClick*/)
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. | ||
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. |
//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()
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. | ||
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. |
//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()
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. | ||
lForceUpdate | Lógico | Força a alteração. |
oTree:ChangeBmp("LBNO","LBTIK","01")
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. |
oTree:ChangePrompt("Novo Texto Item 001","001")
XTree(): DeItem ( ) -->
oTree:DelItem()
XTree(): EndTree ( ) -->
oTree:EndTree()
XTree(): GetCargo ( ) --> cCargo
oTree:GetCargo()
XTree(): GetFatherNode( ) --> aFather
oTree:GetFatherNode() --> aFather
XTree(): GetPrompt ( ) --> cPrompt
oTree:GetPrompt()
XTree(): IsEmpty ( ) --> lIsEmpty
oTree:IsEmpty() // Result: .F.
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 |
// 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
#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