Page 1 of 1

GET ... WHEN

Posted: Thu Jun 04, 2009 3:28 pm
by Raymond Fischbach
Hello all,

I am facing a problem with the WHEN clause of a GET.

As a reference, the VALID clause is executed when the GET control loses focus. This works perfectly.
Similarly, I suppose that the WHEN clause should be executed when the GET control receives the focus.
This doesnt' work as expected.

In fact, I have a few GETs with a WHEN clause in a specific Dialog. I want to show a small message for these GETs (a kind of tip).

Code: Select all

@  5.04, 3.0 GET cD10 SIZE 35, 16 PICTURE "999" WHEN DspDia(oWnd,"10")
@  5.04, 7.5 GET cD12 SIZE 35, 16 PICTURE "999" WHEN DspDia(oWnd,"12")
@  5.04,12.0 GET cD14 SIZE 35, 16 PICTURE "999" WHEN DspDia(oWnd,"14")
...

FUNCTION DspDia(oWnd,cTxt)
oWnd:Say(17,1,cTxt)
RETURN .T.
When executing, werever the focus is, the message "14" is displayed.

Can someone enlighten me on what I miss?
What can I do to have the correct message displayed?

Many thanks in advance,
Raymond

Re: GET ... WHEN

Posted: Thu Jun 04, 2009 8:59 pm
by Enrico Maria Giordano
Use bGotFocus codeblock instead of WHEN clause.

EMG

Re: GET ... WHEN

Posted: Fri Jun 05, 2009 6:49 am
by Raymond Fischbach
Hello Enrico,

Thank you for this info.
But how can I do it?

Many thanks,
Raymond

Re: GET ... WHEN

Posted: Fri Jun 05, 2009 9:40 am
by Enrico Maria Giordano

Code: Select all

oGet:bGotFocus = { || YourCodeHere() }
EMG

Re: GET ... WHEN

Posted: Sun Aug 02, 2009 8:31 am
by Raymond Fischbach
Hello Enrico,

Sorry for the late answer but I have had a lot of other work to do in between.
It also took me some time to find how I could define the oGet object.
Finaly, I thought about the ppo file and ... bingo :)

Your solution works perfectly.

Many thanks again,
Raymond