Yo no he encontrado el contructor de una clase formulario, para usar un patron del diseño que precisamente no permite que se instancie una clase mas de una vez. asi que uso una solucion mas bien ingeniosa y no tanto profesional.
En el ejecutable principal declaro una variable de tipo publica y del tipo boolean para cada form que contenga mi aplicacion.
public entornoNadro as Boolean
*// luego le doy valor falso
entornoNadro = .F.
ahora en el menu en vez de llamar a la aplicacion llamo un programa que verifica si la variable es falsa o verdadera si es verdadera me manda un mensage diciendome que ya se encuentra abierto el form si es falsa lo abre.
IF entornoNadro = .T.
*// SELECT nadro_art
DO FORM 'c:\Farmaciai\forms\nadro'
RETURN
ELSE
MESSAGEBOX('El formulario esta Activo',64,'')
RETURN
ENDIF
y en el formulario en el init tengo la misma variable como verdadera
entornoNadro = .T.
y en el destroy del mismo tengo
entornoNadro = .F.
Esto me funciona bastante bien aunque es algo laborioso.
creo que se puede crear una funcion para cargar los formularios a partir de una matriz y asi llamar todos a travez de una funcion, pero no he tenido tiempo de hacerlo, si lo haces compartes.
saludos.