Ver Mensaje Individual
  #5  
Antiguo 25-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola fwhite.

No es necesario invocar al método Show ya que si la propiedad FormStyle esta declarada como fsMDIChild, la propiedad Visible se pone a True automáticamente.

Si llamas a la creación desde la instancia (frMDIChild) como en tu código, te va a dar error. Hay que llamarla desde la clase (TfrMDIChild). Por otro lado, si utilizás Free, al ser la ventana no modal, retorna inmediatamente y por supuesto con Free se libera y por tanto cierra al instante de ser abierta.

Aunque existen otros modos, te pongo un ejemplo de como podés mostrarla.

MDIForm:
Código Delphi [-]
...
uses Unit2; { unit de frMDIChild }

procedure TfrMDIForm.Button1Click(Sender: TObject);
begin
  if not Assigned(frMDIChild) then  // si no existe
    TfrMDIChild.Create(Self);       // crearla/mostrarla  
end;

MDIChild:
Código Delphi [-]
...

procedure TfrMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  // hace que la ventana se cierre (las ventanas MDIChild por defecto se minimizan)
  Action:= caFree;  
end;

procedure TfrMDIChild.FormDestroy(Sender: TObject);
begin
  frMDIChild:= nil;  //  por: if not Assigned(frMDIChild)... 
end;

Por último te pongo un enlace que te va a aclarar el uso de MDI Aplicaciones MDI

Edito: Me olvidaba... Quitá el form MDIChild de la lista: Proyect -> Options -> Forms -> Auto-create forms:

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 25-11-2011 a las 18:26:31.
Responder Con Cita