Actualizar un SAY al estar modificando un GET
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Actualizar un SAY al estar modificando un GET
Holas,
tengo un problemita, tengo definido un GET
REDEFINE GET oGet VAR cNota ID 101 OF oDlg
REDEFINE SAY oSay VAR cLen ID 102 OF oDlg
oGet:bChange := {|| cLne := STR( 300 - LEN( ALLTRIM( cNota ))), oSay:refresh() }
he probado oSay:setText( cLen ) mas sysrefresh() tambien say:paint() todo en el bloque
bChange del GET pero el SAY no se actualiza, pero si pongo un msginfo() dentro el bloque recien se actualiza, alguna sugerencia para que funcione esto
saludos
Marcelo
tengo un problemita, tengo definido un GET
REDEFINE GET oGet VAR cNota ID 101 OF oDlg
REDEFINE SAY oSay VAR cLen ID 102 OF oDlg
oGet:bChange := {|| cLne := STR( 300 - LEN( ALLTRIM( cNota ))), oSay:refresh() }
he probado oSay:setText( cLen ) mas sysrefresh() tambien say:paint() todo en el bloque
bChange del GET pero el SAY no se actualiza, pero si pongo un msginfo() dentro el bloque recien se actualiza, alguna sugerencia para que funcione esto
saludos
Marcelo
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
Marcelo,
La clase TGET (creo) actualiza un Get despues del siguiente GET.- Si te parece, prueba a ponerle un Get a continuación de prueba. Si te actualiza el SAY una vez pasado este Get de prueba, hemos dado en el clavo. En este caso tienes que modificar la clase TGET.
Si este fuera el caso, dímelo y comentamos que lineas hay que modificar en el TGET.
La clase TGET (creo) actualiza un Get despues del siguiente GET.- Si te parece, prueba a ponerle un Get a continuación de prueba. Si te actualiza el SAY una vez pasado este Get de prueba, hemos dado en el clavo. En este caso tienes que modificar la clase TGET.
Si este fuera el caso, dímelo y comentamos que lineas hay que modificar en el TGET.
Un saludo
Manuel
Manuel
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Manuel,
gracias por responder, pero mi problema es de actualizacion del SAY en el momento que escribo en el GET, lo que especificamente deseo hacer es que mientras escriben en el GET se informe _ quedan libres para escribir en la variable asociada al GET.
saludos
Marcelo
gracias por responder, pero mi problema es de actualizacion del SAY en el momento que escribo en el GET, lo que especificamente deseo hacer es que mientras escriben en el GET se informe _ quedan libres para escribir en la variable asociada al GET.
saludos
Marcelo
Manuel Valdenebro wrote:Marcelo,
La clase TGET (creo) actualiza un Get despues del siguiente GET.- Si te parece, prueba a ponerle un Get a continuación de prueba. Si te actualiza el SAY una vez pasado este Get de prueba, hemos dado en el clavo. En este caso tienes que modificar la clase TGET.
Si este fuera el caso, dímelo y comentamos que lineas hay que modificar en el TGET.
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
Marcelo,
El siguiente código lo he probado y funciona perfectamente. A medida que voy escribiendo el GET simultaneamente me dice en el SAY _ quedan. Si a tí no te funciona, tienes que cambiar la clase TGET:
@ 0.8, 1.0 SAY "TITULAR 1:"
@ 1.0, 8.0 GET oGet1 VAR cNombre OF oDlg ;
ON CHANGE (cLen := STR (300-LEN(ALLTRIM(cNombre))), ; oDlg:UPDATE())
@ 2.0, 1.0 SAY cLen OF oDlg SIZE 40,10 UPDATE
El siguiente código lo he probado y funciona perfectamente. A medida que voy escribiendo el GET simultaneamente me dice en el SAY _ quedan. Si a tí no te funciona, tienes que cambiar la clase TGET:
@ 0.8, 1.0 SAY "TITULAR 1:"
@ 1.0, 8.0 GET oGet1 VAR cNombre OF oDlg ;
ON CHANGE (cLen := STR (300-LEN(ALLTRIM(cNombre))), ; oDlg:UPDATE())
@ 2.0, 1.0 SAY cLen OF oDlg SIZE 40,10 UPDATE
Un saludo
Manuel
Manuel
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Manuel,
gracias, pero tu ejemplo no funciona aqui, seguro mi problema es la version de FWH que estoy utilizando, la mia es la version 2.6 de abril de 2005.
Bueno ni modo, vere que puedo encontrar en el codigo fuente
gracias
Marcelo
gracias, pero tu ejemplo no funciona aqui, seguro mi problema es la version de FWH que estoy utilizando, la mia es la version 2.6 de abril de 2005.
Bueno ni modo, vere que puedo encontrar en el codigo fuente
gracias
Marcelo
Manuel Valdenebro wrote:Marcelo,
El siguiente código lo he probado y funciona perfectamente. A medida que voy escribiendo el GET simultaneamente me dice en el SAY _ quedan. Si a tí no te funciona, tienes que cambiar la clase TGET:
@ 0.8, 1.0 SAY "TITULAR 1:"
@ 1.0, 8.0 GET oGet1 VAR cNombre OF oDlg ;
ON CHANGE (cLen := STR (300-LEN(ALLTRIM(cNombre))), ; oDlg:UPDATE())
@ 2.0, 1.0 SAY cLen OF oDlg SIZE 40,10 UPDATE
- Manuel Valdenebro
- Posts: 706
- Joined: Thu Oct 06, 2005 9:57 pm
- Location: Málaga-España
Marcelo,
Si el código anterior no funciona, estoy casi seguro, que el problema está en la clase TGET. Yo lo tuve hace tiempo y lo solucione gracias a LKM, añadiendo una línea en TGET en el Method EditUpdate():
METHOD EditUpdate() CLASS TGet
if ::oGet:HasFocus
::DispText()
::oGet:Assign() //LKM actualiza buffer actual
endif
::SetPos( ::oGet:Pos )
return nil
Si el código anterior no funciona, estoy casi seguro, que el problema está en la clase TGET. Yo lo tuve hace tiempo y lo solucione gracias a LKM, añadiendo una línea en TGET en el Method EditUpdate():
METHOD EditUpdate() CLASS TGet
if ::oGet:HasFocus
::DispText()
::oGet:Assign() //LKM actualiza buffer actual
endif
::SetPos( ::oGet:Pos )
return nil
Un saludo
Manuel
Manuel
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Manuel,
gracias, esta modifcacion al la clase qet soluciono mi problema, seguro que en las versiones mas actuales de FW, ya esta solucionado
saludos
Marcelo
gracias, esta modifcacion al la clase qet soluciono mi problema, seguro que en las versiones mas actuales de FW, ya esta solucionado
saludos
Marcelo
Manuel Valdenebro wrote:Marcelo,
Si el código anterior no funciona, estoy casi seguro, que el problema está en la clase TGET. Yo lo tuve hace tiempo y lo solucione gracias a LKM, añadiendo una línea en TGET en el Method EditUpdate():
METHOD EditUpdate() CLASS TGet
if ::oGet:HasFocus
::DispText()
::oGet:Assign() //LKM actualiza buffer actual
endif
::SetPos( ::oGet:Pos )
return nil
Yo creo que el problema está en que evaluas cNote. Prueba a evaluar oGet:cText. O sea:
oGet:bChange := {|| cLne := STR( 300 - LEN( ALLTRIM( oGet:cText ))) }
En cuanto a "oSay:refresh()", creo que no es necesario, no lo he probado, pero nunca me ha hecho falta cuando he actualizado algún SAY.
oGet:bChange := {|| cLne := STR( 300 - LEN( ALLTRIM( oGet:cText ))) }
En cuanto a "oSay:refresh()", creo que no es necesario, no lo he probado, pero nunca me ha hecho falta cuando he actualizado algún SAY.
Nos Gusta Programar
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Manuramos,
lo que dices es cierto, pero tambien esta bien para mi la correccion de LKM que especifico Manuel
gracias
Marcelo
lo que dices es cierto, pero tambien esta bien para mi la correccion de LKM que especifico Manuel
gracias
Marcelo
manuramos wrote:Yo creo que el problema está en que evaluas cNote. Prueba a evaluar oGet:cText. O sea:
oGet:bChange := {|| cLne := STR( 300 - LEN( ALLTRIM( oGet:cText ))) }
En cuanto a "oSay:refresh()", creo que no es necesario, no lo he probado, pero nunca me ha hecho falta cuando he actualizado algún SAY.