El método completo:
Tenemos una ventana mdiChild que se llama form1 y su clase es Tform1.
En el OnClose de esa ventana ponemos:
Código Delphi
[-]
Action := cafree;
form1 := nil;
Cuando queramos saber si hay una ventana abierta:
Código Delphi
[-]
if Assigned(form1) then
else
Para crear la ventana Form1, hay varias formas, la que más me gusta es:
Código Delphi
[-]
Form1 := TForm1.Create(nil);
Fíjate en el parámetro "nil", eso quiere decir que nadie se va a encargar de liberar la ventana, porque al cerrarse, ya se lo hemos dicho (Action := cafree).
Si necesitas saber de qué tipo es la ventana abierta en un determinado momento, siempre puedes comparar así:
Código Delphi
[-]
if mdiChildcount > 0 then
if ActiveMdiChild.Classname = 'TForm1' then
else
Saludos.