Ver Mensaje Individual
  #5  
Antiguo 20-09-2012
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
Cita:
Es una llamada básica al hijo...
Hola _CALI.

De esa forma permite abrir mas de una instancia del mismo MDIChild cosa que normalmente no es deseable.

Para crear o activar el minimizado:
Código Delphi [-]
(* Crear MDIChild  *)
procedure TfrmMDIForm.AbrirMDIChild(AClass: TFormClass);
var
  i: Integer;
begin
  for i:= MDIChildCount-1 downto 0 do
    if MDIChildren[i] is AClass then                   //  ¿ Se encontro ?
    begin
      if MDIChildren[i].WindowState = wsMinimized then // ¿ Minimizado ?
        MDIChildren[i].WindowState:= wsNormal;         // => Restaurar
      Exit; // nada mas que hacer aquí...
    end;
  // no se encontró => Crearlo y traerlo al frente
  with AClass.Create(Self) do
    BringToFront;
end;
De este modo, si el MDIChild ya fué creado lo restaura, si no crea una nueva instancia.


Si deseas que el form que es llamado quede seleccionado y permanezca minimizado en lugar de restaurarse, sólo cambiá por la línea en negrita:
Código Delphi [-]
(* Crear MDIChild  *)
procedure TfrmMDIForm.AbrirMDIChild(AClass: TFormClass);
var
  i: Integer;
begin
  for i:= MDIChildCount-1 downto 0 do
    if MDIChildren[i] is AClass then                   //  ¿ Se encontro ?
    begin
      if MDIChildren[i].WindowState = wsMinimized then // ¿ Minimizado ?
       MDIChildren[i].Show;      
      Exit; // nada mas que hacer aquí...
    end;
  // no se encontró => Crearlo y traerlo al frente
  with AClass.Create(Self) do
    BringToFront;
end;

Llamada ejemplo: (para ambos casos)
Código Delphi [-]
procedure TfrmMDIForm.ToolButton1Click(Sender: TObject);
begin
  AbrirMDIChild(TfrmMDIChild1);
end;

Saludos.
__________________
Daniel Didriksen

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