Cita:
Empezado por marto
Es decir, si me están destruyendo, no asignes mi parent al del botón.
|
Esa es la idea!
Cita:
Empezado por marto
¿Qué tenemos que deducir de eso? que cuando TForm destruye a los Componets les cambia la propiedad Parent (y por eso se dispara el método)?.
|
En el TControl.Destroy se asigna el Parent a Nil, esto produce que se dispare este método cuando se está destruyendo el componente, despues de hacer el FButton.Free según el código original.
Cita:
Empezado por marto
Otra cosa que no entiendo es ¿por qué el form ha destruído al Button?
|
En el destructor de los TWinControl se destruyen todos los componentes hijos, relacionados por el parent (Controls)
Cita:
Empezado por marto
Finalmente en lugar de conprobar que no se esté destruyendo el componente, no os parece más elegante comprobar que el boton esté "assigned"??
|
Bueno.. el código original completo lo había hecho con assigned, pero el problema es que el owner destruye antes a componente, y no lo deja apuntado a Nil (0)... entoces assigned siempre da True, aunque el botón ya no exista.
Saludos!