Delphi - Problemas liberando memoria

 
Vista:

Problemas liberando memoria

Publicado por Marcos (192 intervenciones) el 13/05/2004 14:43:34
Holas amigos del foro, pues sigo teniendo algunos problemas con la liberacion de recursos; lo bueno es que ya no tengo el Error de uso de memoria; lo solucioné añadiendo:

inherited;
form1:= NIL;

en el Ondestroy de cada form.

Ahora lo q pasa es lo siguiente ... antes de llamar a una ventana creada en tiempo de ejecución veo el uso de memoria digamos 10.200; cuando creo la ventana crece a 11.200; si la destruyo baja a 10.600; obiamente existe algo q no se libera y sigue ocupando memoria ... uso componentes TQuerys q son los q hacen consultas a la BD y contienen toda la info q solicito ... al destruirse el form ... estos datos tambien se destruyen y la memoria se libera???? seguí hacieno priebas y la memoria no deja de crecer .... y cuando uso el opendialog.execute la memoria crece mucho tb ... y tampoco se libera ...

No creo ningun objeto en tiempo de ejecucion dentro de cada form ...

Muchas gracias por la info q me brinden.

Ahhh y al final el codigo quedó asi:

try
Application.createform(Tx,x);
x .showmodal;
finally
freeandnil(x); //
end;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas liberando memoria

Publicado por Palentino (1 intervención) el 13/05/2004 20:41:15
De punteros se poco, pero Delphi, al igual que C y creo que la mayoría de los lenguages, todo el trabajo lo hace con punteros, lo que pasa es que los encapsula y ofrece al programador otra interfaz para facilitarle el trabajo y lo complicado que son los punteros.Por ello, como los punteros no son otra cosa que asignaciones de memoria cuando se crea algun objeto, nada mas usarlo hay que destruirlo, si se puede.Tambien es por eso que en ocasiones no basta con poner Free, sino que hay que asignarle :=NIL como bien estas haciendo tú.Lo que sucede es que en ocasiones, no se el motivo, al liberar algun objeto no se libera su espacio de memoria al momento, aunque mas tarde en ocasiones lo hace.Se que no te he solucionado nada pero si sacas alguna conclusion positiva de algo servirá.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar