PDA

Ver la Versión Completa : Liberar memoria al cerrar un child.


Bahamut
04-05-2004, 07:02:44
Tengo una preguntilla... se libera la memoria automaticamente al cerrar una ventana hija usando "FormCloseQuery(Sender: TObject; var CanClose: Boolean)" cuando defino CanClose:=True?

Lo digo porque he usado "FormClose(Sender: TObject; var Action: TCloseAction);" y he comprobado que al usar "Action:=CaFree" se libera la memoria del MDI Child, pero no estoy seguro si el close query la libera porque simplemente usa "canclose" pero no usa la variable "cafree".

DarkByte
04-05-2004, 08:48:57
Tengo una preguntilla... se libera la memoria automaticamente al cerrar una ventana hija usando "FormCloseQuery(Sender: TObject; var CanClose: Boolean)" cuando defino CanClose:=True?
Si no me equivoco (aunque seguramente sí), el poner CanClose como True sólo hace que pueda cerrar el form, pero no lo cierra en sí

jachguate
04-05-2004, 08:58:51
Creo que no tenes muy claro cual es la secuencia para cerrar un form.

El evento OnCloseQuery se dispara, y si al terminar la Variable CanClose vale true, se procede a "cerrar" el formulario. Cerrar, significa intentar hacer invisible el formulario (lo cual no es posible con MDIChild), pero no liberará ninguna memoria. Al momento de cerrar el formulario, se dispara el Evento OnClose.

Si el parámetro Action es cambiado a caFree, entonces si se destruye el formulario al momento de cerrarlo, lo que conlleva la liberación de memoria ocupada por el formulario y todos los demás objetos para los que éste sea el propietario.

Hasta luego.

;)