Ver Mensaje Individual
  #9  
Antiguo 20-04-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
En Delphi, las componentes (clase TComponent y descendientes) manejan el concepto de owner o dueño. El owner de una componente es otra componente, que será la encargada de destruirla cuando ella misma se destruya. En otras palabras, cuando una componente se destruye, se lleva consigo a todas las componentes que posea.

La asignación del dueño, se hace al momento de crear una componente, mediante el parámetro Owner del constructor.

En este caso en particular, las ventanas la estás creando con

Código Delphi [-]
TFormClass(FormClass).Create(Application)

de manera que estás indicando que el objeto Application será el dueño del formulario. Entonces- según lo dicho arriba -cuando el objeto Application se destruya, él se encargará de destruir a los formularios que posea. El código de la VCL se encarga de destruir el objeto Application al terminar la ejecución, así que por ahí no hay problema.

Ahora, esta técnica pudiera tener el inconveniente de que todos los formularios que crees durante la ejecución de tu aplicación, estarán ocupando memoria, aun cuando ya no los uses. Si quieres liberarlos antes de que termine la aplicación, entonces basta que en el evento OnClose del formulario pongas

Código Delphi [-]
Action := caFree;

Esto indica al formulario que se "autodestruya" luego de cerrarse.

// Saludos
Responder Con Cita