PDA

Ver la Versión Completa : Liberar objetos que se han añadido a un TList


neon
06-10-2004, 14:24:52
Para liberar objetos que se han añadido a un TList, ¿si eliminamos el tlist? tambien se liberan los objetos creados. O por lo contrario tenemos que recorrer el TList y liberarlos uno a uno

roman
06-10-2004, 15:21:14
Para liberar objetos que se han añadido a un TList, ¿si eliminamos el tlist? tambien se liberan los objetos creados.


No



O por lo contrario tenemos que recorrer el TList y liberarlos uno a uno


Sí. O bien usar un TObjectList de la unidad Contnrs que es similar al TList pero con la opción de sí liberar los objetos.

// Saludos

jplj
07-10-2004, 08:53:05
¿ Roman, la forma correcta de hacerlo seria esta ?



Lista: TList;


var
Obj: TClaseObjetosDeLaLista;

begin

Obj:= Lista.Items[i];
Obj.Free;
Lista.Delete(i);
Lista.Capacity := Lista.Count - 1;

walrus
07-10-2004, 18:47:54
Yo lo haría así:



for i:= Pred( Lista.Count ) downto 0 do TObject( Lista[i] ).Free;
Lista.Clear;
Lista.Capacity := 0;



Saludos.