Hola.
Yo la modificaría un poco,
Código Delphi
[-]
procedure ShowFormIn(frmClass: TFormClass; Container: TWinControl);
var
i : Integer;
begin
for i := Screen.FormCount-1 downto 0 do
if Screen.Forms[i] is frmClass then
begin
Screen.Forms[i].BringToFront;
Exit;
end;
with frmClass.Create(Application) do
begin
Parent := Container;
Align := alClient;
Position := poMainFormCenter;
Show;
end;
end;
De ese modo te permitirá usar diferentes contenedores, por ejemplo:
Código Delphi
[-]
begin
ShowFormIn(TForm2, Memo1);
ShowFormIn(TForm3, Edit1);
ShowFormIn(TForm4, Panel1);
ShowFormIn(TForm5, ListBox1);
end;
Saludos