Hello Javier,
Well, the issue of updating the Cut/Copy/Paste toolbar is not pretty, What you need to do can be accomplished in the toolbar button class and a timer. At every timer interval call a method in the button to refresh itself. For instance in the Cut/Copy buttons the refresh method may look something like this:
tbarButton::Refresh
if type('_screen.activeform.name') = 'C' and ;
inlist(_screen.activeform.activecontrol.baseclass,'Textbox','Editbox')
this.enabled = .t.
else
this.enabled = .f.
endif
The timer would fire every .5 seconds (500ms) and it's timer event may look like this:
tbTimer::Timer
local i
with this.parent
for i = 1 to this.parent.controlcount
if .controls(i).baseclass = 'Button'
.controls(i).refresh()
endif
endfor
These are just examples and not production code. You can develop your own techniques and methods from these concepts.
Glenn
>>Hi,
>>
>>>>
>>I just wanted to know what is the recommended way to refresh a toolbar:
>>- Timer
>>- Inserting code in thisForm.init() and thisForm.destroy() methods.
>>>>
>>
>>It depends...
>>If the same toolbar is servicing multiple forms then I think that probably the best place is in the Form.Activate/Deactivate events.
>>
>>Regards,
>>Viv
>
>You are right, activate and deactivate methods make more sense. The toolbar is servicing the whole application, so it has buttons related to forms and others that relate to miscelaneous things (like save as, send to ..., cut-copy-paste, ...), and these buttons are the ones who change more from enabled to disabled (think of the cut-copy-paste).
>
>Thanks,
>Javier.