No se si te servirá de algo este código, pero por si acaso te lo incluyo.
Yo generalmente n ocreo varias veces un formulario ( a no ser que sea necesario, claro ), sino lo que hago es saber desde donde se ha llamado por si hay que hacer diferentes acciones.
Código Delphi
[-]
procedure AbriFormulario ;
begin
if Form2= nil then Form2 := TForm2.Create(Form2);
with Form2 do begin
Caption:= 'Titulo formulario';
Show;
end;
end;
Un saludo