Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cerrar formularios (https://www.clubdelphi.com/foros/showthread.php?t=24993)

FunBit 08-09-2005 17:36:24

Cerrar formularios
 
Hola compañeros,

sólo escribo para hacer una consulta, ahí va,...

Es normal que en el procedimiento OnClose de mi formulario principal se ejecute sól el codigo Action := caFree; y después o antes de ejecutar esto el flujo de ejecucion de la aplicación no entre al evento OnClose del formulario hijo?

El problema de fondo es que tengo un formulario hijo que no se cierra al cerrar el padre, dejando la aplicación en ejecución (sin que pase nada en intentar cerrar la aplicación). Lo bueno es que sólo me pasa con un formulario hijo, con todos los demas la aplicación funciona correctamente.

Alguna idea de lo que puede fallar?

Yo sigo investigando, cuando encuentre la solución os cuento!

Gracias des de ya!

yusnerqui 08-09-2005 19:17:54

Segun la ayuda de Delphi:
Cita:

Note: When the application shuts down, the main form receives an OnClose event, but any child forms do not receive the OnClose event.
por eso yo prefiero tener un procedimientico que me asegure que todo marchará bien:
Código Delphi [-]
procedure TPrincipal.CerrarTodas;
var i : integer;
begin
  if MDIChildCount > 0 then
    For i := 0 to MDIChildCount-1do
      MDIChildren[i].Close;
end;
y en el evento onClose:
Código Delphi [-]
procedure TPrincipal.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    CerrarTodas;
    Action := caFree;
end;

Espero que esto te sirva

Saludos.

FunBit 09-09-2005 11:31:59

Hola

Reconozco que en el enunciado del problema había poca información, pero buscaba ideas por dónde empezar a buscar la solución, que finalmente encontré.

El problema era que en el formulario hijo se quedaba el focus en un objeto TTreeView y des del padre no dejaba cerrar con Action:=caFree.

La solución:
-En el evento OnCloseQuery cambiar el foco a otro componente del form hijo.

Grácias yusnerqui por tu ayuda, lo probé, pero tampoco funcionaba y por casualidad después de hacer la prueba con tu código encontré la solución!


La franja horaria es GMT +2. Ahora son las 17:52:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi