Pero ojo!!! para que funcione bien deves tomar ciertas precauciones:
Primero, para que no se abra una tras otra la ventana "Hija" y evitar errores deves agregar este codigo:
Código Delphi
[-]type
THome = class(TForm)
Button1: TButton;
Button2: TButton;
procedure AlCerrar( Sender: TObject; var Action: TCloseAction );
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
Código:
procedure AlCerrar( Sender: TObject; var Action: TCloseAction );
Esa Linea...
Código Delphi
[-]
private
public
end;
var
Home: THome;
implementation
{$R *.dfm}
uses Form1;
procedure THome.AlCerrar( Sender: TObject; var Action: TCloseAction );
begin
Action := caFree;
end;
procedure...........
Código:
procedure THome.AlCerrar( Sender: TObject; var Action: TCloseAction );
begin
Action := caFree;
end;
Esta parte...
Luego, en "PROJECT", "OPTIONS", "FORMS" dejas la Form Hija en "AVALIABLE FORMS" y por ultimo, abres la Form Hija con este codigo:
Código Delphi
[-]procedure THome.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to Pred(MDIChildCount) do
if MDIChildren[i] is TForm2 then
begin
MDIChildren[i].BringToFront;
Exit
end;
with TForm2.Create(Application) do
begin
FormStyle := fsMDIChild;
OnClose := AlCerrar;
Show
end
end;
Todo en un Button
Esop... nada nuevo, esta es la misma solucion que me dieron los chicos del foro, que en su momento me tenia de cabeza y gracias a los comentarios de los expertos pude solucionar mucho... Saludos!!!