>>Question:
>>Am I doing it the correct way?
>>Any better suggestion?
>
>If your toolbar may show/hide buttons under any set of rules, then show() would show them all, i.e. it may fire whenever the toolbar is hidden then shown. You may either have an visible_assign() method on each button, or have the .visible=.t. at the line after .addobject(), and then later set it to .t. or .f. depending on the situation.
>
>Usually (at least what I do):
>
>
this.addobject(lcObj, lcClass)
>loObj=getpem(this, lcObj)
>with loObj
> .property...=value
> .propert...=value
> * set whatever else you may want
> .visible=.t.
>endwith
>
>So the object starts as visible, and then later its visibility is set as needed. With your method they all come visible, which may not be what you want. With just two buttons, or if all the buttons are visible all the time, it's not a problem. I've seen frameworks put code in .button.refresh() to decide whether a button will be enabled or not, visible or not. IOW, nothing wrong with your code, it's a matter of where the code goes, a matter of taste.
I normally use designer to create a toolbar with fix set of buttons all ready on it and I have never bother with this button's visible setting. This is the first time I need that to be programmatically done.
Thanks for your clarification.