Olá galera, nesta
Quick Tips, irei mostrar como podemos adicionar em um StringGrid objetos
inteiros, assim como podemos fazer em Combobox, ListBox, por exemplo. Ao
contrário do que muitos pensam StringGrid, não serve apenas para armazenar
texto, mas também objetos, que é o foco do nosso exemplo. Vamos então a
construção do exemplo.
Vamos criar uma unit uCliente.pas, e salvar ela. Veja seu código
completo.
unit uCliente;
interface
Type
TCliente = class
private
FCodigo: String;
FSexo: String;
FNome: String;
procedure SetCodigo(const Value: String);
procedure SetNome(const Value: String);
procedure SetSexo(const Value: String);
{ private declarations }
protected
{ protected declarations }
public
{ public declarations }
property Codigo:
String read FCodigo write SetCodigo;
property Nome: String read FNome write SetNome;
property Sexo: String read FSexo write SetSexo;
published
{ published declarations }
end;
implementation
{ TCliente }
procedure TCliente.SetCodigo(const Value: String);
begin
FCodigo := Value;
end;
procedure TCliente.SetNome(const Value: String);
begin
FNome := Value;
end;
procedure TCliente.SetSexo(const Value: String);
begin
FSexo := Value;
end;
end.
Agora vamos criar um form, e salvar o mesmo como uFrmPrincipal,
vamos adicionar 1 StringGrid, e 2 BitBtn(BtnGravar, BtnCarregar), suas
implementações são bem simples, mas antes disso precisamos dar uses em uCliente.pas.
{
Registrando no StringGrid 2 Objetos }
procedure TFrmPrincipal.BtnGravarClick(Sender:
TObject);
Var
C : TCliente;
Begin
{ Criamos aqui um
primeiro objeto e armazenamos na posição 1,1 }
C := TCliente.Create;
C.Codigo := '1';
C.Nome := 'Wesley Y';
C.Sexo := 'M';
StringGrid1.Objects[1,1] := C;
StringGrid1.Cells[1,1] := C.Nome;
{ Criamos aqui um
segundo objeto e armazenamos na posição 1,2 }
C := TCliente.Create;
C.Codigo := '2';
C.Nome := 'Waleska';
C.Sexo := 'F';
StringGrid1.Objects[1,2] := C;
StringGrid1.Cells[1,2] := C.Nome;
end;
{ Recuperando no
StringGrid o primeiro objeto }
procedure
TFrmPrincipal.BtnRecuperarClick(Sender:
TObject);
begin
ShowMessage(TCliente(StringGrid1.Objects[1,1]).Codigo
+ #13+
TCliente(StringGrid1.Objects[1,1]).Nome
+ #13 +
TCliente(StringGrid1.Objects[1,1]).Sexo
) ;
end;
Podemos notar como é simples adicionar um objeto, porém é interessante como
vocês podem ver, que temos de adicionar uma descrição pra célula que contém o
objeto, ilustrando assim sua identificação
Fico por aqui até a
próxima parte.
Um abraço
Wesley Y
wesley@lithic.com.br