Page 1 of 1
Bug in oDlg:bGotFocus
Posted: Fri Dec 16, 2005 5:29 pm
by Enrico Maria Giordano
Running the following sample you can hear a beep only when the dialog is closed but not when it gets the focus:
Code: Select all
#include "Fivewin.ch"
FUNCTION MAIN()
LOCAL oDlg
LOCAL cVar := SPACE( 30 )
DEFINE DIALOG oDlg
oDlg:bGotFocus = { || Tone( 440, 1 ) }
@ 1, 1 GET cVar
ACTIVATE DIALOG oDlg;
CENTER
RETURN NIL
EMG
Posted: Fri Dec 16, 2005 5:56 pm
by Antonio Linares
Enrico,
It does not look as a bug, as the dialog never gets the focus, just momentary when it is going to be closed. All the time a control has the focus.
Posted: Fri Dec 16, 2005 7:03 pm
by Enrico Maria Giordano
Ok, but this is not consistent with the behavior of bLostFocus. Why?
EMG
Posted: Sat Dec 17, 2005 6:04 am
by Antonio Linares
Enrico,
Do you mean with oDlg:bLostFocus ?
Posted: Sat Dec 17, 2005 9:00 am
by Enrico Maria Giordano
Yes. oDlg:bLostFocus is evaluated when a dialog losts the focus even if there are controls on it while oDlg:bGotFocus isn't.
EMG
Posted: Sat Dec 17, 2005 9:07 am
by Antonio Linares
Enrico,
I have been reviewing the way the Windows msgs are routed by FWH internals, and we don't make any distinction from GotFocus and LostFocus(), so it seems its a Windows behavior for dialogboxes, as Class TDialog code just does this:
Code: Select all
METHOD GotFocus() INLINE ::lFocused := .t.,;
If( ::bGotFocus != nil, Eval( ::bGotFocus ), nil )
...
METHOD LostFocus() INLINE ::lFocused := .f.,;
If( ::bLostFocus != nil, Eval( ::bLostFocus ), nil )
Posted: Sat Dec 17, 2005 9:10 am
by Enrico Maria Giordano
Ok, no problems. Thank you.
EMG
Re: Bug in oDlg:bGotFocus
Posted: Fri Apr 26, 2013 8:05 pm
by Antonio Mart.