Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2004
senpiterno senpiterno is offline
Miembro
 
Registrado: abr 2004
Posts: 112
Poder: 21
senpiterno Va por buen camino
MDI Child que no se cierran

Hola amigos

Mi problema es el que menciono en el titulo, por defecto se que los formularios hijos MDI Child no se cierran a menos que en el evento onclose de este, asignemos a la variable Action el valor de cafree, que es precisamente lo que realizo, pero solo se cierra el primer MDI form y los demas al precionar la X para cerrar el formulario no hacen nada, es mas hasta el formulario contenedor deja de responer cuando lo intento cerrar...a continuacion coloco la forma en que creo los MDI Child y como los cierro...
Para crearlo:
Código Delphi [-]
Procedure TMenuPrincipal.PresionaEntrarMaestroUsuariosDelSistema;
Var
     FormHijo:TMaestroUsuariosIndividual;
Begin
 
  Try //Iniciamos el codigo de control de errores
 
       //Funciones pre-carga formulario....
 
       //Bloqueamos el repintado de la pantalla hasta que no se halla
       //cargado completamente el formulario
       LockWindowUpdate(Handle);
       //Creamos el nuevo hijo   
       FormHijo:=TMaestroUsuariosIndividual.Create(Self);
       //Asigna el caption que tendra el formulario
       FormHijo.Caption:=ColocaNombreFormularios (CNFNomFormMaUsuariosSistema);
       //Que los eventos de teclado se produscan primero en el formulario y despues en los controles
       FormHijo.KeyPreview:=True;
       //Dejamos que la pantalla se repinte, para mostrar en pantalla
       //lo que el formulario muestra 
       LockWindowUpdate(0);
 
       //Funciones pos-carga formulario....
 
  Except //Se ha producido un error
     On E:Exception Do
         If (MensajesDeError(ErroresSistema(E), E, GloMsgErrorCargaFormDesdeMenuPrincipal,False)<> OpReintentar) Then Begin
            CierraCualquierObjeto([FormHijo]);
            Exit;//Salismos del procedimiento
         End;//If
      End;//on
End;
Para cerrarlos
Código Delphi [-]
 
Procedure TMaestroUsuariosIndividual.FormClose(Sender: TObject;
var Action: TCloseAction);
Begin
    OperacionEnCurso:=OpSaliendo;//Se carga la operacion en curso
    //Borramos el formulario de la lista de nombres abiertos
    BorraNombreFormulariosEnLista(self.Caption);
    //Cerramos accesos a datos
    CierraCualquierObjeto([TUsuarios,DSUsuarios,TranLecturaUsuarios]);
    //Salimos del formulario
    Action:=cafree;
End;
 
Procedure TMaestroUsuariosIndividual.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
Begin
    //Averiguamos si podemos cerrar el formulario
    If SalirFormularioUsuarios Then Begin
       CanClose:=True;//Cerranmos el formulario
    End Else Begin
       CanClose:=False;//No Cerranmos el formulario
    End;
End;

esta puesto tal cual lo tengo...las funciones que aparecen al cerrar el form son comprovaciones para saber si es posible cerrar el formulario(en caso de que este en proceso un ingreso o una modificacion) o para descargar de memoria objetos creados dentro del form...

Se agradece cuanquier ayuda
Saludos....

Última edición por senpiterno fecha: 23-11-2004 a las 02:32:33.
Responder Con Cita
 



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 19:06:52.


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