Hola a todos,
Pues yo no entiendo por qué la "linea milagrosa" soluciona el problema. Traduciendo a pseudocódigo el de Delphi.com.ar ...
Código:
procedure Tedit2.MeAsignanElParent(AParent: TWinControl);
begin
inherited;
if not (me están destruyendo) then
FBoton.Parent := AParent;
end;
Es decir, si me están destruyendo, no asignes mi parent al del botón. ¿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)?
Otra cosa que no entiendo es ¿por qué el form ha destruído al Button? El Button forma parte del array Controls no de Components, ¿TForm tambien se encarga de destruir a Controls?
Finalmente en lugar de conprobar que no se esté destruyendo el componente, no os parece más elegante comprobar que el boton esté "assigned"??