Page 1 of 1

blostFocus en Get no ejecuta la primera vez.

Posted: Thu Aug 29, 2019 3:39 pm
by jvtecheto
Hola amigos:

Lo siento pero tengo que abrir un nuevo hilo sobre el tema, ya que al final creo que es un bug de la clase TGet
sino explicadme el funcionamiento de este pequeño codigo.
vereis que la primera vez el valor de la variable no la asigna y la segunda vez si la asigna.

Code: Select all

#include "fivewin.ch"

FUNCTION Main()

   LOCAL oDlg,oGet1,oGet2,cGet1 := Space( 15 ),cGet2:= Space(15)

   DEFINE DIALOG oDlg SIZE 400, 300

   @ 3, 1 GET oGet1 VAR cGet1 OF oDlg  SIZE 100, 12 PICTURE "@!" UPDATE ;
   VALID (MsgInfo("Valor antes del LostFocus "+cGet1),.T.)
   oGet1:bLostfocus := {|| MsgInfo("Valor despues del LostFocus " + cGet1) }

   @ 5, 1 GET oGet2 VAR cGet2 OF oDlg  SIZE 100, 12 PICTURE "@!" UPDATE

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIL
 
No se si vosotros lo veis bien....

Saludos

Jose.

Re: blostFocus en Get no ejecuta la primera vez.

Posted: Thu Aug 29, 2019 10:10 pm
by FranciscoA
jvtecheto wrote:Hola amigos:

Lo siento pero tengo que abrir un nuevo hilo sobre el tema, ya que al final creo que es un bug de la clase TGet
sino explicadme el funcionamiento de este pequeño codigo.
vereis que la primera vez el valor de la variable no la asigna y la segunda vez si la asigna.

No se si vosotros lo veis bien....

Saludos

Jose.
Efectivamente, hasta en la segunda vez lo asigna.

Sin embargo, si lo pones de la siguiente forma, funciona.

Code: Select all

   oGet1:bLostfocus := {|| MsgInfo("Valor despues del LostFocus " + oGet1:cText) }
 
Saludos.

Re: blostFocus en Get no ejecuta la primera vez.

Posted: Fri Aug 30, 2019 7:32 am
by jvtecheto
Gracias por tu interes FranciscoA.

Tienes razon , de esa manera si funciona, Pero yo creo que es un bug.

Deberia de funcionar de la primera manera.

Espero le hechen un vistazo cuando puedan.

Saludos.

Jose.

Re: blostFocus en Get no ejecuta la primera vez.

Posted: Fri Aug 30, 2019 1:20 pm
by karinha
C:\FWH...\samples\JOSE.PRG

Code: Select all

#include "fivewin.ch"

FUNCTION Main()

   LOCAL oDlg, oGet1, oGet2, cGet1 := Space( 20 ), cGet2:= "Cambiando Foco de Jose"
   LOCAL lCambiaJose := .F.

   DEFINE DIALOG oDlg SIZE 400, 300

   @ 3, 1 GET oGet1 VAR cGet1 OF oDlg  SIZE 100, 12 PICTURE "@!" UPDATE ;
      VALID ( MsgInfo( "Valor antes del LostFocus " + cGet1), .T. )

   oGet1:bChange = { || lCambiaJose := .T. }

   oGet1:bLostFocus := {|| If( lCambiaJose, Jose_Focus( oGet1 ), .T. ) }

   @ 5, 1 GET oGet2 VAR cGet2 OF oDlg  SIZE 100, 12 PICTURE "@!" UPDATE

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIL

FUNCTION Jose_Focus( oGet1 )

   LOCAL cTxtJose

   cTxtJose := oGet1:cText

   MsgInfo( "FiveWin The Best: " + cTxtJose )

RETURN( .T. )
 
Saludos.

Re: blostFocus en Get no ejecuta la primera vez.

Posted: Fri Aug 30, 2019 7:22 pm
by jvtecheto
Hola:

Gracias Joao

Asi como tu lo haces con una funcion , si funciona bien. :D

Un abrazo

Jose.