Propriedada Data de TListItem
06/09/2005
0
Se eu destruir o item (TListItem), o ponteiro associado também é destruído ou nao???
Adsilver
Posts
06/09/2005
Massuda
07/09/2005
Adsilver
Se eu destruir o ListItem, esse objeto continua existindo na memória?
Que triste, vou precisar destruir muita coisa... rs
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).
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?
Clique aqui para fazer login e interagir na Comunidade :)