it's quite impossible to click a button not existing, isn't it?
And puting that code into a menu item procedure would also not be a good solution.
As always with such things you only want to program once and use at several places, you do need to move the code to some central place, eg a prg and call that both from the menu item and the button.
More elegant than a PRG would be a central object, eg an instance of an application class you instanciate at start of the application, eg:
Public goApp
goApp = Newobject("gameapplicationclass","application.vcx")
Then this could have a method syncgameserverdata() and you'd call goApp.syncgameserverdata() both from the menu item and from the form button click() event.
A syncgameserverdata() would not be a typical method in such an application class and perhaps you'd rather have a seperate component datasynch, eg as goApp.datasynch and call it by goApp.datasynch.getgameserverdata()
goApp should start with having some global definitions, eg a property applicationname and version. Then all captions etc could refer to goApp.applicationname, version and other stuff you can change centrally.
Well, that's one major oop thought, isn't it? Do once, use multiple times.
Bye, Olaf.