Buscar
favorito(2)
imprimir
anotar
marcarcomolido
tirardvidas
(3) (0)
Ol galera, nesta Quick Tips irei mostrar a Parte III. Trabalhando com Objetos no TreeView. Veremos
as implementaes no Form, a parte da manipulao do Telefone e a recuperao dos dados no
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
1/13
10/3/2016
TreeView.
BtnAddTelefone : OnClick
Finalidade : Adicionar um telefone ao cliente selecionado
procedure TFrmPrincipal.BtnAddTelefoneClick(Sender: TObject);
Var
Node : TTreeNode;
Cliente : TCliente;
Telefone : TTelefone;
begin
if Assigned(TreeView1.Selected) then
begin
if TreeView1.Selected.Level = 0 then //Verica se estamos no primeiro Item
begin
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
2/13
10/3/2016
Node := TreeView1.Selected;
Cliente := TCliente(TreeView1.Selected.Data);
Telefone := TTelefone.Create;
With Telefone do
begin
DDD := EdtDDD.Text;
Numero := EdtNumero.Text;
Tipo := CbxTipo.Text;
end;
Cliente.Telefones.Add(Telefone);
TreeView1.Items.AddChildObject(Node,Telefone.Numero, Cliente);
ClearTelefone;
end
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
3/13
10/3/2016
else
ShowMessage('No trabalhamos com mais de um Nivel de Node');
end
else
ShowMessage('Erro !!! No existe um Node Pai Selecionado');
end;
BtnDelTelefone : OnClick
Finalidade : Excluir um telefone de um Cliente
procedure TFrmPrincipal.BtnDelTelefoneClick(Sender: TObject);
begin
if Assigned(TreeView1.Selected) then //Verica se existe referencia no item selecionado
begin
if TreeView1.Selected.Level = 1 then //Verica se estamos no segundo nvel para poder deletar
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
4/13
10/3/2016
begin
TCliente(TreeView1.Selected.Data).Telefones.Delete(TreeView1.Selected.Index);
TreeView1.Selected.Delete;
end;
end;
end;
TreeView : OnClick
Finalidade : Carregar para o Form as informaes armazenadas no TreeView, permitindo excluso
ou alterao.
procedure TFrmPrincipal.TreeView1Click(Sender: TObject);
begin
ClearCliente;
ClearTelefone;
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
5/13
10/3/2016
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
6/13
10/3/2016
EdtDDD.Text :=
TCliente(TreeView1.Selected.Data).Telefones[TreeView1.Selected.Index].DDD;
EdtNumero.Text :=
TCliente(TreeView1.Selected.Data).Telefones[TreeView1.Selected.Index].Numero;
CbxTipo.ItemIndex :=
CbxTipo.Items.IndexOf(TCliente(TreeView1.Selected.Data).Telefones[TreeView1.Selected.Index].Tipo);
end;
end;
Testando o exemplo
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
7/13
10/3/2016
CDIGOS
ASSINEMVP
BaixeoAPP
Login
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
8/13
10/3/2016
PublicadonoCanalDelphi
ASSINEMVP
BaixeoAPP
Login
(3)
(0)
Compartilhe:
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
9/13
10/3/2016
AdilsonPereira
OlWesley,
Estdandoerronessas3linhas,poisnoestidentificandooscamposDDD,NumeroeTipo.
EstouusandoDelphiXE8.
EdtDDD.Text:=TCliente(TreeView1.Selected.Data).Telefones[TreeView1.Selected.Index].DDD
BaixeoAPP
Login
EdtNumero.Text:=TCliente(TreeView1.Selected.Data).Telefones[TreeView1.Selected.Index].Numero
CDIGOS
ASSINEMVP
CbxTipo.ItemIndex:=
CbxTipo.Items.IndexOf(TCliente(TreeView1.Selected.Data).Telefones[TreeView1.Selected.Index].Tipo)
desdej,agradeo.
Adilson.
h+1ano
AdilsonPereira
[dcc32Error]TreeViewObj.pas(155):E2018Record,objectorclasstyperequired
aiestoerro
Adilson
h+1ano
HlioCardoso
CONSULTOR
Adilson,esteerroocorreuporqueumapartedocdigodevetersidoconfundidacomTAGhtmleporisso
desapareceumasparaoerrosercorrigidonaclasseTCliente,ondeestiveroobjetoTList,troquepor
TList<TTelefone>,porqueissootal"generics"queowesleymencionou.
Sefizerissoemtodosircompilarnormalmente
h+1ano
Adicionar um comentrio...
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
10/13
10/3/2016
JooRicardo
BomdiaWesley,
SouinicianteeestoutentandoimplementarumapartedessecdigoparapegaroIddoregistro,pormest
apresentadoerronavarivelCliente:TCliente
CDIGOS
ASSINEMVP
E2003Undeclaredidentifier:'TCliente'
BaixeoAPP
Login
Poderiameajudar?
Desdejobrigado.
Att,
JooPaulo
h+1ano
DouglasClaudio
OlJoo,tudobem?
Vocchegoualeraprimeiraesegundapartedoartigo,antesdechegarnestaetapa?Oerroestacontecendo,
poisvocnodeu"Uses"naunitUCliente.Pararesoluodoproblema,naUnitquegerandoerro,pressioneas
teclasAlt+F11ouopoFile>UseUnitereferencieaUClientenaUnitatual.
Qualquerdvidaestoudisposio.
Umabrao!
h+1ano
JooRicardo
OlDouglas,tudoevc?
Nohaviameatentadoasoutraspartes.
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
11/13
10/3/2016
Vouverseconsigo.
Obrigado.
Abraos.
h+1ano
Adicionar um comentrio...
CDIGOS
ASSINEMVP
BaixeoAPP
Login
Mais posts
Artigo
Criando um BD e Data Module - Curso Desenvolvendo para Android com Delphi - Aula 16
Video aula
12/13
10/3/2016
CDIGOS
ASSINEMVP
BaixeoAPP
DevMedia
Curtir Pgina
Login
HospedagemwebporPorta80WebHosting
http://www.devmedia.com.br/quick-tips-trabalhando-com-objeto-no-treeview-parte-iii/15434
13/13