Quick Tips: Trabalhando com Objeto no TreeView - Parte III

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (3)  (0)

Nesta Quick iremos ver como trabalhar com Objetos no TreeView

Olá galera, nesta Quick Tips irei mostrar a Parte III. Trabalhando com Objetos no TreeView. Veremos as implementações no Form, a parte da manipulação do Telefone e a recuperação dos dados no 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 //Verifica se estamos no primeiro Item

    begin

      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

    else

      ShowMessage('Não trabalhamos com mais de um Nivel de Node');

  end

  else

    ShowMessage('Erro !!! Não 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 //Verifica se existe referencia no item selecionado

  begin

    if TreeView1.Selected.Level = 1 then //Verifica se estamos no segundo nível para poder deletar

    begin

       TCliente(TreeView1.Selected.Data).Telefones.Delete(TreeView1.Selected.Index);

       TreeView1.Selected.Delete;

    end;

  end;

end;

TreeView : OnClick

Finalidade : Carregar para o Form as informações armazenadas no TreeView, permitindo exclusão ou alteração.

procedure TFrmPrincipal.TreeView1Click(Sender: TObject);

begin

  ClearCliente;

  ClearTelefone;

  if TreeView1.Selected.Level = 0 then //Verifica se estamos no primeiro nível

  begin

    EdtCodigo.Text := IntToStr( TCliente(TreeView1.Selected.Data).Codigo );

    EdtNome.Text   := TCliente(TreeView1.Selected.Data).Nome;

    EdtCPF.Text    := TCliente(TreeView1.Selected.Data).CPF;

  end

  else

  if TreeView1.Selected.Level = 1 then //Verifica se estamos no segundo nível

  begin

    EdtCodigo.Text := IntToStr( TCliente(TreeView1.Selected.Data).Codigo );

    EdtNome.Text   := TCliente(TreeView1.Selected.Data).Nome;

    EdtCPF.Text    := TCliente(TreeView1.Selected.Data).CPF;

    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


 


Fico por aqui e na próxima Quick Tips.

Um abraço

Wesley Y

wyamazack@rwsolution.com.br

Leia todos artigos da série

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?