Aquí pongo un pequeño código, comentado, práctico para trabajar con aplicaciones MDI, usando la herencia.
Debes de crear un nuevo form al que llamarás MDI y a su respectiva Unit UMDI, hay que cambiar su propiedad FormStyle a fsMDIChild y en el evento ONClose colocar caFree, también hay que remover de la interface la declaración var MDI : TMDI, y agregar las classFunction tal y como se ve a continuación.
Código Delphi
[-]
unit UMDI;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TMDI = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
public
class function Formulario: TMDI;
class function CrearOTraerAlFrente: TMDI;
end;
implementation
{$R *.dfm}
procedure TMDI.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree; end;
class function TMDI.Formulario: TMDI; var
I: Integer;
begin
for I := Screen.FormCount - 1 downto 0 do
begin
TForm(Result) := Screen.Forms[i];
if Result.ClassType = Self then
Exit;
end;
Result := nil;
end;
class function TMDI.CrearOTraerAlFrente: TMDI;
begin
Result := Formulario;
LockWindowUpdate(Application.MainForm.ClientHandle); try
if Assigned(Result) then begin
if Result.WindowState = wsMinimized then
ShowWindow(Result.Handle, SW_RESTORE);
Result.BringToFront;
end
else
begin
Result := Create(Application.MainForm); Result.Show;
end;
finally
LockWindowUpdate(0);
end;
end;
end.
Debes heredar de el form que acabas de crear todos los forms MDI que necesites, para hacerlo en Delphi7 sigues : File > New>Other/(buscas el tab con el nombre de tu proyecto) en Delphi 2010 : File > New>Other/Inheritable Items, y haces dobleClick sobre MDI
Para llamarlo desde el form principal de tu aplicación solo debes agregarlo a la cláusula Uses de la implementación de tu form principal y escribir lo siguiente (para el caso de tu ejemplo):
Código Delphi
[-]
TForm2.CrearOTraerAlFrente;
Con eso es suficiente para trabajar con MDI.
PD: No olvides quitar los forms heredados de la creación automática de forms. Project > Options > Forms