Se supone que el componente propietario administra todos sus componentes propios. Los componentes de propiedad se destruyen automáticamente cuando el propietario es destruido.
Esto ayuda al desarrollador que simplemente arrastra los componentes de la paleta de herramientas, los coloca en el formulario y simplemente conecta los eventos para realizar su trabajo sin preocuparse por administrar la vida útil de los componentes.
El formulario es el propietario de todos los componentes que se le han agregado. El objeto Aplicación es el propietario del formulario. Cuando se cierra la aplicación, se destruye el objeto Aplicación, que a su vez destruye los formularios y todos los componentes.
Pero el propietario no es realmente necesario cuando se crean componentes. Si pasa Nil al parámetro, el componente se creará sin un propietario y en este caso será su responsabilidad administrar la duración del componente.
Gran respuesta. Entonces, si quisiera administrar mi vida, ¿cómo me aseguraría de que un objeto se destruya cuando termine? – Dave
@prapin: es necesaria una ligera corrección: el objeto Aplicación es el único propietario de un formulario si el formulario se ha creado con Application.CreateForm(), o cuando la Aplicación se ha pasado a Create as AOwner. Un formulario puede ser propiedad de otro formulario o cualquier otro componente para ese asunto. – mghie
@Dave: A continuación, las preguntas de SO tratan sobre la propiedad del objeto: http://stackoverflow.com/questions/398137/what-is-the-best-way-to-do-nested-try-and-finally-statement-in- delphi # 399860, http://stackoverflow.com/questions/415958/how-to-automatically-free-classes-objects#415990 – mghie