El Formulario activo es Screen.ActiveForm, si vos querés saber si un formulario de una X clase ya ha sido creado, si siempre lo asignas a la misma variable puedes preguntar si esta esta cargada, y limpiarla al cerrar el formulario.
Código:
if not Assigned(Form1) then
From1 := TForm1.Create(Self);
Código:
procedure TForm1.FormDestroy(Sender: TObject);
begin
Form1 := Nil;
end;
O si no lo asignas a ninguna variable, bien puedes recorrer la lista de formularios creados:
[code]
for i := 0 to Screen.FormCount -1 do
if Screen.Forms[i] is TMiForm Then
begin
Break;
end;
[code]
Saludos!