Hola ricardo_yah.
Una forma práctica de hacerlo es usando referencia de clase. La siguiente función crea el Form si no existe, o lo muestra si está creado:
Código Delphi
[-]
procedure TForm1.MostrarChild(AClass: TFormClass);
var
i: Integer;
begin
for i:= 0 to Screen.FormCount -1 do if Screen.Forms[i] is AClass then begin
Screen.Forms[i].WindowState:= wsNormal; Screen.Forms[i].BringToFront; Exit; end;
with AClass.Create(Self) do Show; end;
Ejemplo de llamada:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
MostrarChild(TForm2);
end;
Saludos.