Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problema al Cerrar Forms Hijos (https://www.clubdelphi.com/foros/showthread.php?t=70654)

ricardo_yah 03-11-2010 18:59:00

Problema al Cerrar Forms Hijos
 
Hola Amigos, aqui dandoles lata de nuevo

fiejense que a mis forms hijos le active el onkeypress con el siguiente codigo

Código:

procedure TForm3.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then
begin
close;
end
end;

pero esto me ha dado un problema, que al cerrar mi form padre me pregunta (si tengo abierto mis forms hijos) si deseo cerrar cada uno de mis forms hijos, y yo quisiera que no me pregunte si cierro la aplicacion simplemente cierre todo y ya.

espero que me puedan ayudar, de antemano gracias...

roman 03-11-2010 19:21:37

Yo creo que hay algo que no nos estás diciendo. En algún lugar debes tener un código que se encarga de preguntar al usuario. ¿Por qué no nos cuentas más acerca de eso?

// Saludos

ricardo_yah 03-11-2010 19:26:48

perdon roman a si es el tengo un form padre que nada mas se debe cerrar
a los hijos les active el kepreview y en el evento onkey press puse el codigo

Código Delphi [-]
procedure TForm3.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #27 then
begin
close;
end
end;

y en el FormCloseQuery

Código:

procedure TForm3.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Application.MessageBox( 'Desea salir de la ventana Nueva Factura?','¡ATENCION!',
MB_ICONQUESTION OR MB_YESNO Or mb_DefButton2) = ID_NO then
canclose:=False;
end;

pero te digo yo quiero que cuando se cierre el form padre aunque esten abiertos los hijos, no me pregunte uno por uno solo que se cierre y ya
graxxxx...

ecfisa 03-11-2010 20:12:18

Hola ricardo_yah.

Una posible solución es usar el evento OnClose del MDIChild en lugar de OnCloseQuery.

Código Delphi [-]
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if MessageBox(Handle,'Desea salir de la ventana Nueva Factura?',
    'AVISO',MB_YESNO+MB_ICONQUESTION)= IDNO then
  begin
    Abort;
    Exit;
  end;
  Action:= caFree;
  Form2:= nil;
end;

Saludos. :)

ricardo_yah 03-11-2010 20:36:03

Funciono Ecfisa
 
Hola Ecfisa.

Por lo visto eres mi santo en delphi tu respuesta fue acertada e inmediata gracias...


La franja horaria es GMT +2. Ahora son las 10:42:10.

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