Ver Mensaje Individual
  #4  
Antiguo 05-03-2009
jconnor82 jconnor82 is offline
Miembro
 
Registrado: feb 2008
Posts: 22
Reputación: 0
jconnor82 Va por buen camino
Segun lo q haz puesto es logico q entre en un loop infinito, porque, al ejecutar la TForm(Screen.Forms[idx]).Close nuevamente va a entrar a FormCloseQuery y asi susesivamente, lo q podrias hacer es en vez de usar FormCloseQuery usar el evento OnClose.

Código Delphi [-]
procedure TfmMain.FormClose(Sender: TObject; var Action: TCloseAction);
var
  idx:Integer;
begin
  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;
  end else
    Action := caNone;
end;

No lo he probado, y tambien depende en q forma estes usando el evento, supongo y se esta ejecutando en el formulario principal, es una aplicacion MDI??
Responder Con Cita