Yo uso una solución básicamente igual que la de ecfisa:
Código Delphi
[-]
function EstaAbiertoForm (cNombre : string) : boolean;
var
i : integer;
begin
Result := false;
for i := 0 to Screen.FormCount - 1 do
if Pos (LowerCase(Screen.Forms[i].Name), LowerCase(cNombre) ) > 0 then
begin
Result := true;
break
end
end;