Una opción sencilla:
Código Delphi
[-]
if frm1 <> nil then
begin
frm1 := frm1 .Create(Self);
frm1 .Show;
end;
y sólo tienes qe asegurarte de que cuando se cierre el formulario vuelvas a poner la variable frm1 en
nil. Esto lo puedes hacer en el evento OnClose del formulario.
Esto suponiendo que al cerrarlo también lo destruyes. Si sólo lo ocultas entonces sería:
Código Delphi
[-]
if frm1 <> nil then
begin
frm1 := frm1 .Create(Self);
end;
frm1 .Show;
// Saludos