Page 1 of 1

Ventanas abiertas

Posted: Tue Feb 19, 2013 6:50 pm
by Agustin
Tengo el siguiente codigo en 2 aplicaciones. La primera compilada hace 5 años con Harbour y Minigui de la época me funciona correctamente. Al cerrar todas las ventanas excepto la principal devuelve 1.
La segunda compilada con HMG actual me devuelve 2. Que hago mal ?

STATIC FUNCTION VentanasAbiertas()

Local i := 0
Local nVentanas := 0
Local iFCount := LEN (_HMG_SYSDATA [ 67 ])

FOR i:=1 TO iFCount STEP 1

IF _HMG_SYSDATA [ 68 ] == .t.
nVentanas := nVentanas +1
ENDIF

NEXT i

RETURN nVentanas

Ventanas abiertas

Posted: Tue Feb 19, 2013 7:54 pm
by Pablo César
Bien venido al fórun Agustin !

Realizé tests en su código y verifiqué que de facto está incluyendo el form _HMG_CHILDWAITWINDOW. Entonces realizando este cambio tu consigues obtener el resultado correcto:

Code: Select all

STATIC FUNCTION VentanasAbiertas()
Local i := 0 
Local nVentanas := 0 
Local iFCount := LEN (_HMG_SYSDATA [ 67 ]) 

FOR i:=1 TO iFCount STEP 1 
    IF _HMG_SYSDATA [ 68 ] [i] == .t. 
	   If !(_HMG_SYSDATA [ 66 ] [i]="_HMG_CHILDWAITWINDOW")
		  MsgInfo(_HMG_SYSDATA [ 66 ] [i])
		  nVentanas := nVentanas +1
	   Endif
    ENDIF 
NEXT i 
Return nVentanas
Parece ser de InitWaitWindow() que cria un nuevo form. No sé si esto debe caracterizarse como un BUG. Talvez Roberto pueda responder.

Re: Ventanas abiertas

Posted: Tue Feb 19, 2013 8:59 pm
by Agustin
Muchisimas gracias Pablo César. Funciona perfectamente.
Un saludo