Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Liberación de memoria de punteros Data de un Tree. (https://www.clubdelphi.com/foros/showthread.php?t=44961)

afxe 19-06-2007 14:10:41

Liberación de memoria de punteros Data de un Tree.
 
Hola a todos.

He implementado un treeView enlazado con un DataSet usando la propiedad Data de los nodos para guardar los bookmark de cada registro. Con el método gotobookmark me voy posicionando en el dataset mientras me muevo por el tree.

Mi pregunta es: Al cerrar el form y destruirse el treeview... ¿Se libera la memoria usada por los bookmark? ¿Tendría que recorrer el arbol haciendo un freeBookmark por cada nodo antes de cerrar?

Gracias por vuestra atención.

Lepe 19-06-2007 17:24:33

Tienes que liberarlo tú, y muy posiblemente antes de cerrar el Dataset (no he trabajado con ese tipo de Bookmark que comentas).

Con el bde solía usar BookmarkStr que es una cadena en string, así que no tenía que liberarlo, cuando la variable perdía su visibilidad... listo.

En tu caso, viendo que usas la propiedad Data, no será de tipo string, así que tendrás que liberarlo.

Saludos

delphi.com.ar 19-06-2007 17:24:50

Cita:

Empezado por afxe
Mi pregunta es: Al cerrar el form y destruirse el treeview... ¿Se libera la memoria usada por los bookmark? ¿Tendría que recorrer el arbol haciendo un freeBookmark por cada nodo antes de cerrar?

Podrías llamar a FreeBookmark dentro del evento OnDeletion del TTreeView.


Saludos!

afxe 19-06-2007 20:21:02

Gracias a ambos. Implementaré el OnDeletion.

Y por abusar: ¿existe alguna utilidad que te informe de la memoria que se va quedando ocupada por meteduras de pata como la de no liberar objetos cuando cierras un form? Es relativamente fácil ir haciendo .Create y se te escape el .free correspondiente. Quizás debería abrir un hilo nuevo, pero creo que viene a cuento para el ejemplo que he citado.

delphi.com.ar 19-06-2007 20:23:12

Existe algo que puede ayudarte: MemProof
Pero lo que mas va a ayudarte es ser prolijo y metódico a la hora de escribir código.

Saludos!

afxe 20-06-2007 18:12:34

Gracias de nuevo, por los consejos y los enlaces.

Saludos.


La franja horaria es GMT +2. Ahora son las 18:41:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi