FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Actualizar un SAY al estar modificando un GET
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Actualizar un SAY al estar modificando un GET
Posted: Thu May 11, 2006 02:16 PM

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

Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Actualizar un SAY al estar modificando un GET
Posted: Thu May 11, 2006 02:28 PM

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.

Un saludo



Manuel
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Actualizar un SAY al estar modificando un GET
Posted: Thu May 11, 2006 02:59 PM
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 cuantos caracteres 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.
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Actualizar un SAY al estar modificando un GET
Posted: Thu May 11, 2006 05:33 PM

Marcelo,
El siguiente código lo he probado y funciona perfectamente. A medida que voy escribiendo el GET simultaneamente me dice en el SAY cuantos caracteres 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
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Actualizar un SAY al estar modificando un GET
Posted: Thu May 11, 2006 10:00 PM
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

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 cuantos caracteres 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
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Actualizar un SAY al estar modificando un GET
Posted: Fri May 12, 2006 05:09 AM
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 ::HasFocus
::DispText()
::Assign() //LKM actualiza buffer actual
endif

::SetPos( ::Pos )

return nil
Un saludo



Manuel
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Actualizar un SAY al estar modificando un GET
Posted: Thu May 18, 2006 09:27 PM
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

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 ::HasFocus
::DispText()
::Assign() //LKM actualiza buffer actual
endif

::SetPos( ::Pos )

return nil
Posts: 219
Joined: Mon Dec 26, 2005 07:25 PM
Actualizar un SAY al estar modificando un GET
Posted: Sat May 20, 2006 08:41 AM
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.
Nos Gusta Programar
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Actualizar un SAY al estar modificando un GET
Posted: Tue May 23, 2006 03:50 PM
Manuramos,

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.

Continue the discussion