For a kiosk application I need touch-screen input.
How could I detect with get field got focus?
Thanks in advance
Otto

How could I detect with get field got focus?
Thanks in advance
Otto


LOCAL GetFlag := 1 // 1. Get
REDEFINE GET oGet1 VAR nValue1 ID 101 OF oDlg PICTURE "999999.99" UPDATE // PICTURE "XXXXXXXXX"
REDEFINE GET oGet2 VAR nvalue2 ID 102 OF oDlg PICTURE "999999.99" UPDATE
REDEFINE GET oGet3 VAR nValue3 ID 103 OF oDlg PICTURE "999999.99" UPDATE
oGet1:bGotFocus := {|| Getflag := 1 }
oGet2:bGotFocus := {|| Getflag := 2 }
oGet3:bGotFocus := {|| Getflag := 3 }
// Button with value 1
// -----------------------
REDEFINE BTNBMP oBtn1 ID 200 OF oDlg 2007 ;
FILENAME c_path + "\Images\select.bmp" ;
LEFT ;
PROMPT "1" ; // Value 1
FONT oProgFont ;
ACTION ( IIF( Getflag = 1, ( nValue1 := VAL( ALLTRIM(STR(nValue1)) + "1" ) ), oGet1:Refresh() ), NIL ), ;
IIF( Getflag = 2, ( nValue2 := VAL( ALLTRIM(STR(nValue2)) + "1" ) ), oGet2:Refresh() ), NIL ), ;
IIF( Getflag = 3, ( nValue3 := VAL( ALLTRIM(STR(nValue3)) + "1" ) ), oGet3:Refresh() ), NIL ) )
// Button with value 2
// -----------------------
REDEFINE BTNBMP oBtn2 ID 210 OF oDlg 2007 ;
FILENAME c_path + "\Images\select.bmp" ;
LEFT ;
PROMPT "2" ; // Value 2
FONT oProgFont ;
ACTION ( IIF( Getflag = 1, ( nValue1 := VAL( ALLTRIM(STR(nValue1)) + "2" ) ), oGet2:Refresh() ), NIL ), ;
IIF( Getflag = 2, ( nValue2 := VAL( ALLTRIM(STR(nValue2)) + "2" ) ), oGet2:Refresh() ), NIL ),;
IIF( Getflag = 3, ( nValue3 := VAL( ALLTRIM(STR(nValue3)) + "2" ) ), oget2:Refresh() ), NIL) )
..
..
@ 40 , 10 GET oGet[1] VAR aVarGet[1] of oDlg PIXEL SIZE 80,12 font Setup():oFntdISPLAY VALID (nGetFocus :=1,.t.)
@ 2, 320 SBUTTON oBtnRest PROMPT "Rest übernehmen1" OF oDlg ACTION ( aVarGet[nGetFocus] := ALLTRIM(STR(nRest)) ,;
nRest := nRechungsbetrag - VAL(aVarGet[1]) - VAL(aVarGet[2]) - VAL(aVarGet[3]) - VAL(aVarGet[4]) - VAL(aVarGet[5]) + VAL(aVarGet[6]) ,;
oGet[nGetFocus]:refresh(), oRest:refresh() ) PIXEL SIZE 88, 28 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTALOtto wrote:Hello Uwe,
please excuse me not having answered immediately.
Your suggestion with CARET didn’t work. Apoint[2] always return 2.
I tried then a similar solution you posted now only I use an array.
@ 40 , 10 GET oGet[1] VAR aVarGet[1] of oDlg PIXEL SIZE 80,12 font Setup():oFntdISPLAY VALID (nGetFocus :=1,.t.) @ 2, 320 SBUTTON oBtnRest PROMPT "Rest übernehmen1" OF oDlg ACTION ( aVarGet[nGetFocus] := ALLTRIM(STR(nRest)) ,; nRest := nRechungsbetrag - VAL(aVarGet[1]) - VAL(aVarGet[2]) - VAL(aVarGet[3]) - VAL(aVarGet[4]) - VAL(aVarGet[5]) + VAL(aVarGet[6]) ,; oGet[nGetFocus]:refresh(), oRest:refresh() ) PIXEL SIZE 88, 28 FONT Setup():oFntBrowser COLORS CLR_WHITE,RGB(44,72,93) , CLR_WHITE CRYSTAL
The Input-field on top (say) is to show the total amount .
Thanks for your help.
Best regards,
Otto
Otto,
You can use:
oWndFromHwnd( GetFocus() ) --> oWndFocused