Subject Re: Pushbuttons
From Akshat Kapoor <akshat.kapoor@kapoorsons.in>
Date Mon, 7 Oct 2019 19:35:44 +0530
Newsgroups dbase.getting-started

On 07/10/2019 19:24, Mervyn Bick wrote:
> On 2019-10-07 8:05 AM, Akshat Kapoor wrote:
>
>> Thank You for the explanation Mervyn,
>> Yes extracting what to do from Pushbutton properties is also possible
>> We can easily obtain which control has focus
>>
>>        if type('this.parent.activeControl') # 'U'
>>            if this.parent.activeControl.Name == "CANCELPUSHBUTTON"
>>               this.stopTrying := true
>>               return
>>            endif
>>        endif
>>
>
> It's actually easier than that.  Store the value from the field
> push_action to a user-defined property of the pushbutton when it is
> constructed
>
> cmd = [form.main]+temp+[.action = ']+
> rtrim(form.table1.rowset.fields["push_action"].value)+[']
> &cmd
> cmd = [form.main]+temp+[.onclick = form.push_onclick]
> &cmd
>
> All the pushbuttons use the same onClick event handler but you don't
> need to know specifically which pushbutton has focus.  In fact, if you
> set the pushbutton's speedbar property true, it won't get focus when
> clicked.
>
> "this" in the event handler is always the object which executed the
> event handler whether it gets focus or not.  The event handler can,
> instead of having the action passed to it as a parameter, simply fetch
> it from the user-defined property of the appropriate pushbutton.
>
>    function push_onClick()
>       action = this.action
>       form.result.text = action
>       ....
>       return
>
>
> Mervyn.

Marvelous.
is the best description.

Regards
Akshat