Ver Mensaje Individual
  #8  
Antiguo 22-09-2010
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 Lenny.

Me alegro que te haya servido lo que hemos escrito Federico, Santiago y yo.

Quisiera agregarte que se puede parametrizar la creación y muestra de ventanas MDIChild.

Mirá este procedimiento:
Código Delphi [-]
procedure TMDIForm.CrearChild(ClassForm: TFormClass);
var
  i: Integer;
begin
  for i:= 0 to MDIChildCount do  // Buscamos si está creada
   if Screen.Forms[i].ClassName = ClassForm.ClassName then // ¿ Ya existe ?
   begin
     Screen.Forms[i].WindowState:= wsNormal;  // restaurar
     Screen.Forms[i].BringToFront;            // Traer al frente
     Exit;                                    // Salir;
   end;
  with ClassForm.Create(nil) do Show; // No existe, crearla
end;

Ejemplo de lamada:
Código Delphi [-]
    CrearChild(TMDIChild);

El comportamiento por defecto al cerrarse de los Forms MDIChild, es minimizarse. Por lo que, si querés cerrarlos, deberás incluir esta línea en el evento OnClose de cada MDIChild:
Código Delphi [-]
   Action:= caFree; // Cerrar;
   Nombre_del_form:= nil; // línea opcional, se libera el recurso de inmediato, si no windows lo hará después


Espero que te ayude.

Saludos.

Última edición por ecfisa fecha: 22-09-2010 a las 21:41:27.
Responder Con Cita