>>Best would be to pass an object reference to the call:
>>
>>*...in method code
>>abcd=MyProcUDF(thisform,
...other parms)
>>*
>>*
>>FUNCTION MyProcUDF
>>LPARAMETER toFormRef,
...yadda, yadda, yadda>>IF toFormRef.OfferCredit
>
>That's the way I ended up doing it. Works great!
You need to take some care here, especially if you invoke methods of the object you've passed into your procedure. It's possible that invoking a method of the object might invoke another instance of the same function; at a minimum, I'd aggressively make sure that I used an LPARAMETERS statement to force LOCAL scoping of the parameters, and I'd explicitly declare all variables as LOCAL to avoid possible side-effects where VFP creates an undeclared variable with a PRIVATE scope the first time, but uses the existing visible PRIVATE instance on subsequent calls.