Gracias por tus aclaraciones, Lepe. Pero es un tema difícil de seguir, ya que realmente el compilador explota, y cuesta mucho encontrar el punto donde sucede esta explosión. He tenido este problema en el componente que discutimos en el hilo Override eventos On... (
http://www.clubdelphi.com/foros/showthread.php?t=25540)
Si en el destroy del objeto repaso si debo destruir el objeto creado con
Código Delphi
[-]
destructor TDBexplorer.Destroy;
begin
if Modal then
begin
if Assigned(Explorador) then
FreeAndNil(Explorador);
end;
inherited Destroy;
end;
he concluido lo que describo en el comentario //... Lo que quiere decir que si el Tform creado esta generado como no Modal, se ha liberado automáticamente por si mismo, por lo menos su puntero ¿no?, pero si es Modal si pasa por el código y realiza el FreeAndNil(Explorador). Depurando es muy difícil de seguir esto, ya que se reciben los típicos avisos de Access Violation Address con matrículas que a los mortales no nos dicen nada, y cuesta encontrar en que línea de código sucede, ya que el compilador no la muestra por defecto. Para mi, creo que este es el gran defecto de Delphi, por lo menos su talón de Aquiles.Y entiendo la opción de descartar estas llamadas, por impotencia. Actualmente tengo estos errores al cerrar un proyecto, no se cierra adecuadamente y tengo Access Violation Address ...in module rtl60.dpl se cuelga Delphi simplemente por abrir y cerrar el proyecto, pero no por depurarlo ¿...? incluso el exe rueda OK y no produce errores. Por supuesto cuando sale la ventana de las direcciones de memoria del compilador, para mi es peor que el chino, árabe y japonés todo junto. Si tenéis alguna pista, ...gracias a todos.