Bill,
You can't have your cake and eat it too.
If there's no reuse anyway why do you worry about keeping it all in just one place?
Call DoMyThing() from the button click. DoMyThing.prg will contain all the sub-procs that you want. Then you effectively have all of the code in one place, and it's called from just one place.
Barring that just usurp several methods of the button, you can stash code in methods like Drag, OleDrag etc. Then you can have the really intuitive (*LOL*) Click code like:
with this
.Drag()
.OleDrag()
endwith
>It's a fairly complex procedure that could really use some sub-programs. The entire code is about 200 lines long and logically can be broken into about 4 different sub-programs.