Estás haciendo una MDI pero quieres que solo una ventana esté visible en determinado momento?
En ese caso no necesitas que sea MDI, podrías hacer un diseño con un TPanel que sea el contenedor de las ventanas hijas, las cuales las puedes configurar que no tengan borde y estén alineados al cliente. La propiedad
Parent de estas formas sería el TPanel contenedor.
Algo así:
Código Delphi
[-]
TForm1 = class(TForm)
private
FCurrentForm: TForm;
end;
procedure TForm1.ShowForm(ANewFormClass: TFormClass);
begin
if not Assigned(FCurrentForm) or (FCurrentForm.ClassType <> ANewFormClass) then
begin
if Assigned(FCurrentForm) then
FCurrentForm.Free;
FCurrentForm := ANewFormClass.Create(nil);
FCurrentForm.Parent := PanelContenedor;
FCurrentForm.Show
end
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowForm(TForm2)
end;
Esto lo hice de memoria y solo con fines de demostración, pero lo podrías usar como punto de partida.
Saludos...