Ver Mensaje Individual
  #1  
Antiguo 04-03-2009
Efren2006 Efren2006 is offline
Miembro
 
Registrado: feb 2006
Posts: 178
Reputación: 21
Efren2006 Va por buen camino
Problema al Cerrar Aplicacion

Saludos

Ahora tengo el siguiente problema, mi aplicacion crea los formularios segun la opcion que el usuario seleccione, ademas los tengo dentro de uan BPL por modulo es decir Ejemplo [Contabilidad,Facturacio, Etc] esto esta trabajando perfectamente, el problema es que cuando el usuario tiene abierto por lo menos 1 formulario y trata de cerrar la aplicacion yo coloque en el evento OncloseQuery lo Siguiente;

Código Delphi [-]
 
procedure TMenu.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
Var
  idx:Integer;
Begin
Canclose:=False;
if Application.MessageBox('Desea Salir del Sistema ...?','Salir',
           MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2)=IdYes Then
      Begin
      for idx:=Screen.FormCount-1 downto 1 do
          Begin
          if TForm(Screen.Forms[idx]).Name<>'' Then
              If TForm(Screen.Forms[idx]).Owner=Self Then
                 TForm(Screen.Forms[idx]).Close;
          End;
      Canclose:=True;
      end;
end

Cuando efectua este procedimiento, el sistema se queda en un Loop, y da error de memoria, Estoy utilizando Delphi 2009 y me percato que pareciera que no esta haciendole Free al formulario Abierto, pero yo tengo en los formularios en el evento Close;

Código Delphi [-]
 
procedure TFBase.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;
end;

Ya que todos mis Formularios Heredan de un Formulario Base;

Alguna Sugerencia ??
Responder Con Cita