Fórum Propriedada Data de TListItem #294670
06/09/2005
0
Se eu destruir o item (TListItem), o ponteiro associado também é destruído ou nao???
Adsilver
Curtir tópico
+ 0Posts
06/09/2005
Massuda
Gostei + 0
07/09/2005
Adsilver
Se eu destruir o ListItem, esse objeto continua existindo na memória?
Que triste, vou precisar destruir muita coisa... rs
Gostei + 0
07/09/2005
José Henrique
Gostei + 0
08/09/2005
Massuda
Relendo este tópico, percebi que estou assumindo que o objeto que você está associando ao Data foi criado dinamicamente. Mas pode não ser o caso, poderia ser algum componente que você pôs no form em tempo de projeto. Nesse caso, esse objeto tem um Owner (o form) e você não precisa se preocupar em destruí-lo (fica por conta do form).
Gostei + 0
23/05/2019
Elpidio Baberge
Estou usando este comando para verificar se tem algum objeto preso na memória:
ReportMemoryLeaksOnShutdown := (DebugHook <> 0);
Estou populando um TListView conforme abaixo:
try
oClienteController := TClienteController.Create;
oList := oClienteController.Pesquisar(edtPesquisa.Text);
lstConsulta.Clear;
for I := 0 to oList.Count -1 do
begin
oCliente := TCliente.Create;
oCliente := oList.Items[i] as TCliente;
lstViewItem := lstConsulta.Items.Add;
with lstViewItem do
begin
Caption := IntToStr(oCliente.Id);
SubItems.Add(oCliente.Nome);
SubItems.Add(oCliente.CPF);
SubItems.Add(oCliente.RG);
SubItems.Add(oCliente.Telefone);
Data := oCliente;
end;
end;
finally
oClienteController.Destroy;
oClienteController := nil;
oClienteController.Free;
FreeAndNil(oList);
end;
até ai blz.
Porém quando fecho a aplicação, recebo a seguinte mensagem:
An unexpected memory leak has occurred. The unexpected small block leaks are:
21 - 28 bytes: TCliente x 5665
Mesmo eu dando um FreeAndNil no meu objeto após atribuir no meu lstViewItem.Data := oCliente, a mensagem acima continua aparecendo.
O que posso fazer para corrigir esse problema?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)