Quick Tips: Trabalhando com Objeto no TreeView - Parte I

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 dica iremos ver como trabalhar com Objetos no TreeView.

Olá galera, nesta Quick Tips irei mostrar um componente no Delphi chamado TreeView, veremos que neste componente não trabalhamos somente com textos adicionados a ele, formando aquela árvore, mas também adicionar um objeto inteiro, uma classe Cliente por exemplo, sendo o nó principal, e os telefones sendo seus nós filhos, então vamos ao que interessa, esta é a primeira parte onde estamos construindo a aplicação , e duas classes uma esta usando uma lista genérica, o famoso Generics, a partir do Delphi 2009.

 

Vamos ao exemplo :

 

Adicione 1 TreeView.

Cliente : 3 Bitbtns(BtnAdicionar, BtnEditar, BtnDeletar), 3LabeledEdit(EdtCodigo, EdtNome, EdtCPF).

Telefone : 2 Bitbtns(BtnAddTelefone, BtnDelTelefone), 2LabeledEdit(EdtDDD, EdtNumero) 1 Combobox(CbxTipo) e 1 Label.




Iremos criar agora uma nova Unit, salve a mesma como uTelefone, esta class será bem simples, porém com ela poderemos ver um recurso muito poderoso englobado no Delphi 2009 em diante, chamado Generics(veja o link http://www.devmedia.com.br/articles/viewcomp.asp?comp=15119, onde o Ricardo Coelho explica melhor o Generics).

 

uTelefone

 

unit uTelefone;

 

interface

Type

  TTelefone = Class

  private

    FDDD: String;

    FNumero: String;

    FTipo: String;

    procedure SetDDD(const Value: String);

    procedure SetNumero(const Value: String);

    procedure SetTipo(const Value: String);

  published

  public

    property DDD    : String read FDDD write SetDDD;

    property Numero : String read FNumero write SetNumero;

    property Tipo   : String read FTipo write SetTipo;

  End;

 

implementation

 

{ TTelefone }

 

procedure TTelefone.SetDDD(const Value: String);

begin

  FDDD := Value;

end;

 

procedure TTelefone.SetNumero(const Value: String);

begin

  FNumero := Value;

end;

 

procedure TTelefone.SetTipo(const Value: String);

begin

  FTipo := Value;

end;

 

end.

 

 

Iremos Criar agora uma nova Unit, salve a mesma como uCliente, nesta Unit, observe que demos Uses em generics.defaults, generics.collections, para podermos usar o Generics, assim temos uma lista de Telefones para cada cliente, ou seja um telefone pode ter um ou mais clientes, e também veremos que é bem simples excluir um telefone, desta lista.

 

uCliente

 

unit uCliente;

 

interface

uses generics.defaults, generics.collections, uTelefone;

Type

  TCliente  = Class

  private

    FCodigo: Integer;

    FCPF: String;

    FNome: String;

    FTelefones: TList;

    procedure SetCodigo(const Value: Integer);

    procedure SetCPF(const Value: String);

    procedure SetNome(const Value: String);

    procedure SetTelefones(const Value: TList);

  published

  public

    Constructor Create;

    property Codigo   : Integer read FCodigo write SetCodigo;

    property Nome     : String read FNome write SetNome;

    property CPF      : String read FCPF write SetCPF;

    property Telefones: TList read FTelefones write SetTelefones;

  End;

 

implementation

 

{ TCliente }

 

constructor TCliente.Create;

begin

  //Finalidade : Ao criar um Cliente já teremos a lista de telefones criadas

  Telefones := TList.Create;

end;

 

procedure TCliente.SetCodigo(const Value: Integer);

begin

  FCodigo := Value;

end;

 

procedure TCliente.SetCPF(const Value: String);

begin

  FCPF := Value;

end;

 

procedure TCliente.SetNome(const Value: String);

begin

  FNome := Value;

end;

 

procedure TCliente.SetTelefones(const Value: TList);

begin

  FTelefones := Value;

end;

 

end.

 

 

Fico por aqui e na próxima Quick Tips onde veremos a implementação das funções no Form.

 

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?