a) Tengo una clase TObject que se llama "miClase".
b) Esta tiene, entre otras, una variable de tipo TStringList (ej: "mistrings")
c) A su vez trabajo con ellas con una lista de objetos miClase (de nombre: miLista)
Supongan que llega el momento de eliminar un ítem de la lista (con todos sus elementos ya creados y utilizados. Para ello utilizaría el metodo delete:
Código:
miClase(miLista.Items[i]).Delete;
Ahora la pregunta. Si tuviera un afán ordenador superior al que tengo con otros aspectos de mi trabajo, y por tanto quisiera eliminar toda la memoria asignada a este obsoleto menester, ¿es necesario el método free?, o alcanza solo con delete?
Por otra parte: debo liberar el stringlist promero o al liberar el objeto ya se libera la memoria del stringlist incluido.
En concreto, es correcto esto?
Código:
miClase(miLista.Items[i]).mistrings.free; //libero mem de la variable tstringlist
miClase(miLista.Items[i]).Delete; //borro el elemento
miClase(miLista.Items[i]).Free; //libero mem del elemento
o hay lineas de más o de menos?