Liberar memória no Tlist
Ola pessoal!
Bem! Eu gostaria de saber como liberar a memória ocupada por cada objeto(item) do TList? Ou seja.
Eu retiro este elemento da lista e logo em seguida libero a memória???
...eu olhei a documentação do delphi mas não entendi quando fala em setar a lista na propriedade capacity.
Por Ex: (sei la)
Obj:= Lista.items[0];
Obj.free;
Alguem pode me dar uma dica como retirar o elemento da lista e logo em seguida liberar a memória q o mesmo ocupava na lista.
vlw!
Bem! Eu gostaria de saber como liberar a memória ocupada por cada objeto(item) do TList? Ou seja.
Eu retiro este elemento da lista e logo em seguida libero a memória???
...eu olhei a documentação do delphi mas não entendi quando fala em setar a lista na propriedade capacity.
Por Ex: (sei la)
Obj:= Lista.items[0];
Obj.free;
Alguem pode me dar uma dica como retirar o elemento da lista e logo em seguida liberar a memória q o mesmo ocupava na lista.
vlw!
Fernando Piccini
Curtidas 0
Respostas
Massuda
19/01/2005
Alguem pode me dar uma dica como retirar o elemento da lista e logo em seguida liberar a memória q o mesmo ocupava na lista.
Acho que não entendi o que você quer... você quer liberar a memória utilizada pelo objeto ou a memória utilizada para armazenar na lista a referência para o objeto?GOSTEI 0
Fernando Piccini
19/01/2005
Bem! é o seguinte.
1)Gostaria de retirar o 1º elemento da lista certo;
O Tlist tem ométodo delete mas ele não libera a memória ocupada por este objeto.
E eu gostaria que fosse retirado e liberado a memória
obrigado pela atenção
1)Gostaria de retirar o 1º elemento da lista certo;
O Tlist tem ométodo delete mas ele não libera a memória ocupada por este objeto.
E eu gostaria que fosse retirado e liberado a memória
obrigado pela atenção
GOSTEI 0
Massuda
19/01/2005
O TList é basicamente uma lista de ponteiros... por isso ele não tem métodos que saibam o que é um objeto.
Para fazer o que você descreveu, usando um TList, é exatamente o que você escreveu:
Talvez fosse interessante você considerar o uso de um TObjectList ao invés de um TList... O TObjectList é uma lista de TObjects e pode (se você assim desejar) destruir automaticamente os objetos contidos na lista quando eles não forem mais necessários.
Para fazer o que você descreveu, usando um TList, é exatamente o que você escreveu:
var Obj: TObject; Lista: TList; //... Obj:= TObject(Lista.Items[0]); Lista.Items[0] := nil; Obj.Free;
Talvez fosse interessante você considerar o uso de um TObjectList ao invés de um TList... O TObjectList é uma lista de TObjects e pode (se você assim desejar) destruir automaticamente os objetos contidos na lista quando eles não forem mais necessários.
GOSTEI 0
Massuda
19/01/2005
Desculpe... eu li novamente o que você escreveu e me parece que este seria um exemplo mais adequado usando TList:
var Obj: TObject; Lista: TList; //... Obj:= TObject(Lista.First); Lista.Remove(Obj); Obj.Free;
GOSTEI 0
Fernando Piccini
19/01/2005
Aos colegas que me ajudaram! Muito obrigado!
ah! Hoje tb comprei a revista do clubeDelphi!
Ela eh muito boa! Soh o preço neh meio salgado! heheheheh
abraço a todos
ah! Hoje tb comprei a revista do clubeDelphi!
Ela eh muito boa! Soh o preço neh meio salgado! heheheheh
abraço a todos
GOSTEI 0