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
[-]
procedure TfrmMDIForm.AbrirMDIChild(AClass: TFormClass);
var
i: Integer;
begin
for i:= MDIChildCount-1 downto 0 do
if MDIChildren[i] is AClass then begin
if MDIChildren[i].WindowState = wsMinimized then MDIChildren[i].WindowState:= wsNormal; Exit; end;
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
[-]
procedure TfrmMDIForm.AbrirMDIChild(AClass: TFormClass);
var
i: Integer;
begin
for i:= MDIChildCount-1 downto 0 do
if MDIChildren[i] is AClass then begin
if MDIChildren[i].WindowState = wsMinimized then MDIChildren[i].Show;
Exit; end;
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.