David,
In order for an object to be part of the event loop, meaning a user can interact with it (see it, click it, type into it), it must be a contained object of a form. Which means that you have to thisform.AddObject() the object to the form. Non-form objects that are instantiated with CreateObject() are never part of the event loop, and as Sergey said you can't make an already existing object part of another object.
>Is it possible to put an existing button object on the surface of an existing form? e.g. as in the code below, is there a way to make the button 'ob' show up in the form 'of'?
>
>ob = createobject('commandbutton')
>of = createobject('form')
>of.show(1)