Olá galera, nesta Quick Tips, irei mostra como podemos adicionar e remover objetos em um ListView. Nesta parte vamos montar o formulário com o ListView e 3 LabeledEdit, além de 3 Buttons para manipulação das ações.

 

Vamos criar um formulário e salvar o mesmo uFrmCliente.pas, nele vamos adicionar:

 

1 – ListView ( LstVwCliente )

3 – LabeledEdit ( EdtCodigo, EdtDescricao, EdtSexo )

1 – ToolBar1 (ToolBar1 )

3 – TToolButton ( BtnGravar, BtnLer, BtnDeletar )

1 – ImageList ( 3 Imagens a sua escolha )

 

Configurando o ListView :

 

·         ViewStyle = vsReport;

·         SortType  = stBoth;

·         RowSelect = True;

·         Columns = Adicione 2 colunas ( Código e Descrição. Sexo não irá aparecer no LstVwCliente, porém veremos como recuperar seu conteúdo mesmo não aparecendo no LstVwCliente )

 

Veja como ficou o formulário:

 


 

 

 

Precisamos dar Uses em uCliente dentro do nosso formulário FrmCliente:

 

unit uFrmCliente;

 

interface

 

uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, ExtCtrls, ToolWin, ImgList, uCliente;

.

.

.

 

 

Neste momento vamos implementar o BtnGravar:

 

 

procedure TFrmCliente.BtnGravarClick(Sender: TObject);

Var

    I : Integer;

    Item : TListItem;

    C : TCliente;

begin

    C := TCliente.Create;

    C.Codigo := EdtCodigo.Text;

    C.Descricao := EdtDescricao.Text;

    C.Sexo := EdtSexo.Text;

    Item := LstVwCliente.Items.Add;

    Item.Caption := C.Codigo;

    Item.SubItems.Add ( C.Descricao );

    Item.Data := C;

 

    EdtCodigo.Clear;

    EdtDescricao.Clear;

    EdtSexo.Clear;

 

end;

 

Neste momento vamos implementar o BtnLer:

 

procedure TFrmCliente.BtnLerClick(Sender: TObject);

Var

    C: TCliente;

begin

    C := TCliente(LstVwCliente.ItemFocused.Data);

    EdtCodigo.Text := C.Codigo;

    EdtDescricao.Text := C.Descricao;

    EdtSexo.Text := C.Sexo;

end;

 

 

Neste momento vamos implementar o BtnDeletar:

 

procedure TFrmCliente.BtnDeletarClick(Sender: TObject);

begin

    if MessageDlg('Deseja Excluir o Registro?', mtconfirmation, [mbYes, mbNo], 0) =         
       
mrYes then

    begin

        LstVwCliente.ItemFocused.Data := Nil;

        LstVwCliente.DeleteSelected;

    end;

end;

 

Como vocês podem ver é bem simples adicionar um objeto e receuperar o mesmo em um ListView.

 

Fico por aqui ate à próxima Quick Tips. Baixe o exemplo completo neste post.

 

Um abraço

 

 

Wesley Y

wyamazack@lithic.com.br