>Neither of these approaches allows code to be executed purely from within an object's context. With the COMPILE approach, you're creating a standalone PRG. CodeBlock has a special method called SetCallingObject( ), which allows your code to include "THIS." references, which CodeBlock redirects to the object you've passed in.
Just an idea: the object's context can be obtained by passing This as a parameter to the .prg, or ThisForm as well. We could use This.Parent or ThisForm.ActiveObject in the .prg, if the parameters are named This and ThisForm. I'm just wandering if this would add to functionality or to confusion?