Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-09-2005
Avatar de FunBit
FunBit FunBit is offline
Miembro
 
Registrado: jun 2005
Ubicación: Santa Maria d'Oló
Posts: 572
Poder: 19
FunBit Va por buen camino
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!
__________________
Brot Psicòtik
Responder Con Cita
  #2  
Antiguo 08-09-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
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.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #3  
Antiguo 09-09-2005
Avatar de FunBit
FunBit FunBit is offline
Miembro
 
Registrado: jun 2005
Ubicación: Santa Maria d'Oló
Posts: 572
Poder: 19
FunBit Va por buen camino
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!
__________________
Brot Psicòtik
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:06:30.


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