FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour lFocused and bLostFocus
Posts: 392
Joined: Tue Mar 10, 2009 11:54 AM

lFocused and bLostFocus

Posted: Sat Jan 21, 2012 09:01 AM
Hi to all,

obviously <lFocused> is not set when bLostFocus is executed:
Code (fw): Select all Collapse
FUNCTION Main()
   
   LOCAL oDlg
   LOCAL oGet
   LOCAL cGet := "test"
   LOCAL oCheck2
   
   SetCancel( .T. )
   
   DEFINE DIALOG oDlg size 400, 400 TITLE "A Dialog Box"

   @  2,  2 GET oGet VAR cGet OF oDlg
   oGet:bLostFocus := { || Show_Focus( oDlg, oGet, cGet ) }
   
   @  3,  2 CHECKBOX oCheck2 PROMPT "This is  a second CHECKBOX" OF oDlg

   @  5,  4 BUTTON "&Ok" OF oDlg SIZE 40, 12 ACTION oDlg:End()

   @  5, 15 BUTTON "&Cancel" OF oDlg SIZE 40, 12 ACTION oDlg:End()

   ACTIVATE DIALOG oDlg
   
RETURN NIL

FUNCTION Show_Focus( oDlg, oGet, cGet )
   LOCAL i
   LOCAL lReturn := .F.

   i := AScan( oDlg:aControls, { | o | o:lFocused } )
   IF i > 0
     nMsgBox( "Dialog element '" + oDlg:aControls[ i ] :cCaption + "' has the focus"  )
   ELSE
    nMsgBox( "Can't determin focus!" )
   ENDIF
RETURN lReturn

The above code always returning 'Can't determin focus!'
If it's easily to implement, I would appreciate to have the same behavior in bLostFocus as in bValid!
Windows 11 Pro 22H2 22621.1848

Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384

Harbour 3.2.0dev (r2008190002)

FWH 23.10 x86
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: lFocused and bLostFocus

Posted: Sat Jan 21, 2012 09:26 AM

Frank,

Please change this line this way:

i := AScan( oDlg:aControls, { | o | o:lFocused } )

to

i := AScan( oDlg:aControls, { | o | o:hWnd == GetFocus() } )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 392
Joined: Tue Mar 10, 2009 11:54 AM

Re: lFocused and bLostFocus

Posted: Sat Jan 21, 2012 09:32 AM

perfect, thank you

Windows 11 Pro 22H2 22621.1848

Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384

Harbour 3.2.0dev (r2008190002)

FWH 23.10 x86

Continue the discussion