Page 1 of 1

Bug in clausula WHEN

Posted: Wed Jun 27, 2007 3:57 pm
by thefull
Miren te comportamiento:

DEFINE DIALOG oWnd SIZE 300,300

@1,1 BUTTON oBtn ACTION "HOLA" OF oDlg

oBtn:Disable()

ACTIVATE DIALOG oDlg

Se puede observar que el boton es desactivado.
Ahora, si le añadimos la clausula WHEN al boton, ya NO ESTA DISABLE()

No me digas que lo meta en el ACTIVATE , porque es ya ilegible de la cantidad de cosas que hay que hacer antes del activate...

¿ Alguna solución ?

Posted: Wed Jun 27, 2007 4:01 pm
by Antonio Linares
Rafa,

Antes del ACTIVATE el botón no tiene un handle válido de control, por lo que no se puede disable

Posted: Wed Jun 27, 2007 4:45 pm
by thefull
Antonio Linares wrote:Rafa,

Antes del ACTIVATE el botón no tiene un handle válido de control, por lo que no se puede disable
Antonio, no te has percatado que si no tienes la clausula WHEN SI QUE FUNCIONA!!!

Si le pones la clausula NO FUNCIONA... ¿ capichi.... ? jejeje

Posted: Wed Jun 27, 2007 4:59 pm
by Antonio Linares
Rafa,

Al enviarle el mensaje Disable() desde PRG se le está enviando un mensaje a bajo nivel con SendMessage() de Windows, que entrá en la cola de mensajes de Windows. Depende de los mensajes pendientes que llegue ó no a procesarse, pues antes tiene que tener un handle valido

No es fácil de explicar :-)

Posted: Wed Jun 27, 2007 5:03 pm
by thefull
Antonio Linares wrote:Rafa,

Al enviarle el mensaje Disable() desde PRG se le está enviando un mensaje a bajo nivel con SendMessage() de Windows, que entrá en la cola de mensajes de Windows. Depende de los mensajes pendientes que llegue ó no a procesarse, pues antes tiene que tener un handle valido

No es fácil de explicar :-)
Osease, que me estas diciendo, que ahora, depende de los eventos del sistema operativo, puede que NO ME FUNCIONE SIN LA CLAUSULA WHEN ?

Vaya hombre, ahora me va a tocar deshacer lo hecho....

Posted: Wed Jun 27, 2007 6:17 pm
by Antonio Linares
Si haces el :Disable() desde el ON INIT te aseguras de que tiene un handle válido y que el mensaje le va a llegar al control