Add Release method to you class and put code there. The object will have to be released through oDad.Release().
>I near the end of implementing something that I probably overengineered to begin with (UML tools can be dangerous in the wrong hands). I know I should go back and re-engineer it, but I'm close to done, and I really NEED to be done.
>
>For reasons that will probably turn out to be frivolous, I have objects that work something like this:
>
>
>DEFINE CLASS Dad AS Custom
> oMyBoy= .NULL.
>
> FUNCTION init
> oMyBoy = createObject("Bobby")
> oMyBoy.oMyDad = This
> ENDFUNC
>
>ENDDEFINE
>
>DEFINE CLASS Bobby AS Custom
> oMyDad = .NULL.
>ENDDEFINE
>
>oDad = createObject("Dad")
>
>
>
>...which works fine for my nefarous purposes, however, it also has an ugly problem when you want to release oDad.
>
>RELEASE oDad releases the reference oDad, but it leaves Dad and son floating around out there with no external reference...the oMyBoy.oMyDad Reference sustains it. I know its still out there, because stuff in destroy() doesnt run until I do a CLEAR ALL
>
>I currently have a function that nulls the inside references (the actual construct is a tree), but having to call this before releasing the object is very bothersome to me. I would be embarrased to have somebody see it in my code.
>
>I could live with putting my call to null the references in destroy(), but it appears destroy won't fire until all the references are cleared.
>
>Does anybody know of a method I could stick my reference nuller in that fires when the external reference is released?
>
>TIA
>
>Russ
--sb--