Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   ventana hija que no se cierra al pulsar la 'x' (https://www.clubdelphi.com/foros/showthread.php?t=75140)

Thoma 01-08-2011 11:00:14

ventana hija que no se cierra al pulsar la 'x'
 
No entiendo lo que me pasa, me explico, tengo una ventana padre(madre, o queráis llamarla) cuando abro una ventana hija para trabajar con ella y luego pulso la 'x' para cerrarla, lo que me hace es que la minimiza y no la cierra ¿alguien sabe a que es debido?

ecfisa 01-08-2011 11:06:13

Hola Thoma.

Es el comportamiento normal de los forms MDIChild. En el evento OnClose del form MDIChild poné:
Código Delphi [-]
procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:= caFree;
end;

Saludos.

Thoma 01-08-2011 11:12:02

Gracias ecfisa, poniendo lo que me dices me funciona, pero por defecto ¿no debería de cerrar la ventana?
lo único que había añadido era lo siguiente:
Código Delphi [-]
procedure TFrmParametros.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     FrmParametros:=nil;
end;

ecfisa 01-08-2011 11:21:07

Hola nuevamente.

Cita:

pero por defecto ¿no debería de cerrar la ventana?
No, el comportamiento por defecto de las ventanas MDI hijas es minimizarse. Para que puedas verificarlo, agregá esta línea al evento OnClose del form MDIChild:
Código Delphi [-]
uses TypInfo;

procedure TFrmParametros.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ShowMessage(GetEnumName(TypeInfo(TCloseAction),Ord(Action))); 
end;

Saludos.

Thoma 01-08-2011 11:28:18

gracias por tu aclaración (me estoy volviendo un poco loco con el delphi, acostumbrado al cobol....)
me sale el siguiente error:
[DCC Error] FrParametros.pas(35): E2003 Undeclared identifier: 'GetEnumName'

ecfisa 01-08-2011 11:35:11

Hola Thoma.

Fijate que en el codigo de arriba incluí:
Código Delphi [-]
uses TypInfo;
Es necesario que agregues esa unidad para usar las funciones GetEnumName y TypeInfo.

Un saludo.

Thoma 01-08-2011 11:39:39

Muchas gracias ecfisa, no me había percatado lo de la unidad.
un saludo.


La franja horaria es GMT +2. Ahora son las 23:37:30.

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