Tema: Ayuda MDI
Ver Mensaje Individual
  #2  
Antiguo 28-09-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 24
maeyanes Va por buen camino
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)
  // Componentes y métodos
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;

// Llamando ShowForm:
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...
Responder Con Cita