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
Moderator: Rathinagiri
- Pablo César
- Posts: 4059
- Joined: Wed Sep 08, 2010 1:18 pm
- Location: Curitiba - Brasil
Ventanas abiertas
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:Parece ser de InitWaitWindow() que cria un nuevo form. No sé si esto debe caracterizarse como un BUG. Talvez Roberto pueda responder.
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 nVentanasHMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Re: Ventanas abiertas
Muchisimas gracias Pablo César. Funciona perfectamente.
Un saludo
Un saludo