ON CHANGE de GET active BUTTON
ON CHANGE de GET active BUTTON
Saludos,
Tengo la siguiente situacion...
LOCA cId:= SPAC(10), cPassword:= SPAC(10)...
@ 74,180 GET cId PIXEL ON CHANGE oBtn:Refresh()
@ 85,180 GET cPassword PASSWORD PIXEL ON CHANGE oBtn:Refresh()
@ 102, 85 BUTTON oBtn PROMPT '&Ingresar' WHEN ( !EMPTY( cId ) .AND. !EMPTY( cPassword ) ) ACTION ( ValidInfo( cId, cPassword ) )
...
Sucede que el boton oBtn inicia desactivado porque cId y cPassword estan vacios, pero se escribe en cId y se empieza a escribir en cPassword y no he podido hacer que se active o desactive oBtn a medida que va cambiando cPassword o cId, he probado cambiando el ON CHANGE de los GET por ( oBtn:Refresh(), .T. ), ( oDlg:Refresh(), .T. ), ( SysRefresh(), .T. ), etc... y nada.... solo se activa oBtn cuando el GET bien sea de cId o cPassword pierden el foco, por lo tanto mi consulta es...
QUE DEBO PONER EN EL ON CHANGE DEL GET PARA QUE VAYA ACTUALIZANDO LA INFORMACION DEL BUTTON ?
Gracias por sus aportes...
Tengo la siguiente situacion...
LOCA cId:= SPAC(10), cPassword:= SPAC(10)...
@ 74,180 GET cId PIXEL ON CHANGE oBtn:Refresh()
@ 85,180 GET cPassword PASSWORD PIXEL ON CHANGE oBtn:Refresh()
@ 102, 85 BUTTON oBtn PROMPT '&Ingresar' WHEN ( !EMPTY( cId ) .AND. !EMPTY( cPassword ) ) ACTION ( ValidInfo( cId, cPassword ) )
...
Sucede que el boton oBtn inicia desactivado porque cId y cPassword estan vacios, pero se escribe en cId y se empieza a escribir en cPassword y no he podido hacer que se active o desactive oBtn a medida que va cambiando cPassword o cId, he probado cambiando el ON CHANGE de los GET por ( oBtn:Refresh(), .T. ), ( oDlg:Refresh(), .T. ), ( SysRefresh(), .T. ), etc... y nada.... solo se activa oBtn cuando el GET bien sea de cId o cPassword pierden el foco, por lo tanto mi consulta es...
QUE DEBO PONER EN EL ON CHANGE DEL GET PARA QUE VAYA ACTUALIZANDO LA INFORMACION DEL BUTTON ?
Gracias por sus aportes...
Saludos / Greetings
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
Re: ON CHANGE de GET active BUTTON
Hola Jair,
Prueba con oBtn:Enable().
En el siguiente ejemplo se activa el boton cuando se ha validado el password:
.....
@ 74,180 GET cID PIXEL VALID TuFuncionValidID(...)
@ 85,180 GET cPassword PIXEL VALID IF( TuFuncionValidPassword(...),oBtn:Enable(),MsgInfo("Error en password") )
.....
Un saludo.
Prueba con oBtn:Enable().
En el siguiente ejemplo se activa el boton cuando se ha validado el password:
.....
@ 74,180 GET cID PIXEL VALID TuFuncionValidID(...)
@ 85,180 GET cPassword PIXEL VALID IF( TuFuncionValidPassword(...),oBtn:Enable(),MsgInfo("Error en password") )
.....
Un saludo.
Re: ON CHANGE de GET active BUTTON
Gracias por tu aporte,
efectivamente el oBtn:enable() activa el boton, pero no es la idea a la que quiero llegar...
Imagina que tienes un GET en el que el usuario va escribiendo y necesitas que un boton, un say, o cualquier control muestre, actue, se active, etc... en medida de _ que vayan sucediendo en el get sin abandonarlo...
Hay algo que sucede cuando el GET pierde el foco, que evalua el WHEN del boton y lo activa, ese algo es lo que quiero hacer para activar el boton del ejemplo...
(He estado probando algo con oBtn:aEvalWhen(), oDlg:aEvalWhen(), pero aun no he podido) seguire intentando y esperando sus aportes
Gracias de nuevo,
efectivamente el oBtn:enable() activa el boton, pero no es la idea a la que quiero llegar...
Imagina que tienes un GET en el que el usuario va escribiendo y necesitas que un boton, un say, o cualquier control muestre, actue, se active, etc... en medida de _ que vayan sucediendo en el get sin abandonarlo...
Hay algo que sucede cuando el GET pierde el foco, que evalua el WHEN del boton y lo activa, ese algo es lo que quiero hacer para activar el boton del ejemplo...
(He estado probando algo con oBtn:aEvalWhen(), oDlg:aEvalWhen(), pero aun no he podido) seguire intentando y esperando sus aportes
Gracias de nuevo,
Saludos / Greetings
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
- Willi Quintana
- Posts: 859
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: ON CHANGE de GET active BUTTON
Hazlo asi:
REDEFINE BTNGET oBusGlob ;
VAR cBusGlob ;
ON CHANGE (oBusGlob:Assign(), ; // actualiza el buffer a la variable propia
EVAL(XXX), oBotonx:Enable(), oNoseQue:Show()........... ) // lego del Assign pones lo que desees o evaluas el valor de la variable....
Salu2
REDEFINE BTNGET oBusGlob ;
VAR cBusGlob ;
ON CHANGE (oBusGlob:Assign(), ; // actualiza el buffer a la variable propia
EVAL(XXX), oBotonx:Enable(), oNoseQue:Show()........... ) // lego del Assign pones lo que desees o evaluas el valor de la variable....
Salu2
- Willi Quintana
- Posts: 859
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: ON CHANGE de GET active BUTTON
O tomando tu ejemplo
oBtn:Disable()
@ 74,180 GET cId PIXEL ON CHANGE (oBtn:Assign(), oBtn:Enable(), oBtn:Refresh() )
@ 85,180 GET cPassword PASSWORD PIXEL ON CHANGE (oBtn:Assign(), oBtn:Enable(), oBtn:Refresh() )
@ 102, 85 BUTTON oBtn PROMPT '&Ingresar' WHEN ( !EMPTY( cId ) .AND. !EMPTY( cPassword ) ) ACTION ( ValidInfo( cId, cPassword ) )
...
Salu2
oBtn:Disable()
@ 74,180 GET cId PIXEL ON CHANGE (oBtn:Assign(), oBtn:Enable(), oBtn:Refresh() )
@ 85,180 GET cPassword PASSWORD PIXEL ON CHANGE (oBtn:Assign(), oBtn:Enable(), oBtn:Refresh() )
@ 102, 85 BUTTON oBtn PROMPT '&Ingresar' WHEN ( !EMPTY( cId ) .AND. !EMPTY( cPassword ) ) ACTION ( ValidInfo( cId, cPassword ) )
...
Salu2
Re: ON CHANGE de GET active BUTTON
Saludos Willy y muchas gracias por tu contribucion...
Pero lamento decirte que no existe el metodo que mencionas para los botones... oBtn:Assign() me salio el error (Error description: Warning BASE/1004 Message not found: TBUTTON:ASSIGN)
He estado probando con...
@ 85,180 GET cPassword OF oDlg PIXEL PASSWORD ON CHANGE ( oBtn:aEvalWhen(), oDlg:aEvalWhen(), UpdateWindow(), MsgInfo( 'Probando' ) )
funciona, siempre y cuando no le quite el MsgInfo(), y lo otro que tiene malo es que activa el boton al digitar el segundo caracter, y si el usuario borra con la tecla Retroceder [BackSpace], cuando borra el primer caracter sigue activo el boton, tienen que presionar otro Retroceder para que vuelva a inactivarse el boton...
Bueno, seguire investigando y en espera de sus aportes.
Gracias de nuevo
Pero lamento decirte que no existe el metodo que mencionas para los botones... oBtn:Assign() me salio el error (Error description: Warning BASE/1004 Message not found: TBUTTON:ASSIGN)
He estado probando con...
@ 85,180 GET cPassword OF oDlg PIXEL PASSWORD ON CHANGE ( oBtn:aEvalWhen(), oDlg:aEvalWhen(), UpdateWindow(), MsgInfo( 'Probando' ) )
funciona, siempre y cuando no le quite el MsgInfo(), y lo otro que tiene malo es que activa el boton al digitar el segundo caracter, y si el usuario borra con la tecla Retroceder [BackSpace], cuando borra el primer caracter sigue activo el boton, tienen que presionar otro Retroceder para que vuelva a inactivarse el boton...
Bueno, seguire investigando y en espera de sus aportes.
Gracias de nuevo
Saludos / Greetings
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
Re: ON CHANGE de GET active BUTTON
YO QUE TU LE QUITARA ENTONCES EL MSGINFO Y LE PUSIERA UN SYSREFRESH()
Software especializado para oficinas contables con grandes volumenes de Informacion
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
Re: ON CHANGE de GET active BUTTON
prueba con:
oDlg:AEvalWhen() // evaluar los when en un dialogo
oDlg:AEvalWhen() // evaluar los when en un dialogo
Saludos
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Angel, Valencia, Venezuela
xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
- Willi Quintana
- Posts: 859
- Joined: Sun Oct 09, 2005 10:41 pm
- Location: Cusco - Perú
- Contact:
Re: ON CHANGE de GET active BUTTON
UPs,, tienes razon,,, deberia ir asi:
oBtn:Disable()
@ 74,180 GET oGetx VAR cId PIXEL
@ 85,180 GET oPass VAR cPassword PASSWORD PIXEL ON CHANGE (oPass:Assign(), If(cld = xxx .AND. cPasword = yyy, oBtn:Enable(), oBtn:DIsable()), oBtn:Refresh() )
@ 102, 85 BUTTON oBtn PROMPT '&Ingresar' WHEN ( !EMPTY( cId ) .AND. !EMPTY( cPassword ) ) ACTION ( ValidInfo( cId, cPassword ) )
esto activaria el boton "ingresar" si se cumple la igualdad de las variables con xxx y con yyy
Salu2
oBtn:Disable()
@ 74,180 GET oGetx VAR cId PIXEL
@ 85,180 GET oPass VAR cPassword PASSWORD PIXEL ON CHANGE (oPass:Assign(), If(cld = xxx .AND. cPasword = yyy, oBtn:Enable(), oBtn:DIsable()), oBtn:Refresh() )
@ 102, 85 BUTTON oBtn PROMPT '&Ingresar' WHEN ( !EMPTY( cId ) .AND. !EMPTY( cPassword ) ) ACTION ( ValidInfo( cId, cPassword ) )
esto activaria el boton "ingresar" si se cumple la igualdad de las variables con xxx y con yyy
Salu2
Re: ON CHANGE de GET active BUTTON
Ya lo habia probado de esta manera y no funciona... (Con SysRefresh() )QAZWSX2K wrote:YO QUE TU LE QUITARA ENTONCES EL MSGINFO Y LE PUSIERA UN SYSREFRESH()
@ 85,180 GET cPassword OF oDlg PIXEL PASSWORD ON CHANGE ( oBtn:aEvalWhen(), oDlg:aEvalWhen(), SysRefresh() )
Pero si lo hago de esta manera...
@ 85,180 GET cPassword OF oDlg PIXEL PASSWORD ON CHANGE ( oBtn:aEvalWhen(), oDlg:aEvalWhen(), SysRefresh(), MsgInfo( ''Probando ) )
le pongo el MsgInfo() para verificar que se esta ejecutando el ON CHANGE, eso causa una salida y entrada al GET y ahi si actualiza el estado del boton... osea evalua oBtn:aEvalWhen() y oDlg:aEvalWhen()...
Gracias... y sigo probando y en espera de sugerencias...
Saludos / Greetings
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
Re: ON CHANGE de GET active BUTTON
Gracias por tu aporte, pero ya lo habia probado... el ultimo codigo que puse que funciona con problemas es...ADBLANCO wrote:prueba con:
oDlg:AEvalWhen() // evaluar los when en un dialogo
@ 85,180 GET cPassword OF oDlg PIXEL PASSWORD ON CHANGE ( oBtn:aEvalWhen(), oDlg:aEvalWhen(), UpdateWindow(), MsgInfo( 'Probando' ) )
El UpdateWindow() lo he cambiado por SysRefresh() y no trabaja sino pongo el MsgInfo() de prueba para verificar la ejecucion del ON CHANGE del GET...
Ojala Antonio nos de una manito...
Gracias...
Saludos / Greetings
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
Jair A. Linares
FWH 13.07/ Harbour 3.2.0 dev (r1306132159)/ Borland C++ 5.82 / UEStudio 9.20/ Help&Manual 5
jair.linares71@gmail.com
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: ON CHANGE de GET active BUTTON
Saludos...
Si logro entender tu problema, puedes intentar esto
Si logro entender tu problema, puedes intentar esto
Code: Select all
#include "fivewin.ch"
function main()
local oDlg
local cId := space( 10 )
local cPass := space( 10 )
local oBtn
define dialog oDlg pixel size 400,400
@ 01,01 Get oGetx var cId pixel of oDlg
@ 20,01 Get oGetP var cPass Password pixel of oDlg ;
on change( if( empty( oGetP:oGet:Buffer ), oBtn:Disable(), oBtn:Enable() ) )
@ 40,01 button oBtn prompt "OK" of oDlg pixel
oBtn:Disable()
activate dialog oDlg
return nil
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9