>this works >form.control.method() > this.oHost = thisform >endproc >form.control.destroy() > this.oHost = .null. >endproc >This is a one directional link, the contained object is holding an object reference to it's form, it is cleaning up that reference during it's destroy. This is part of the garbage in the FFC IMHO. The control simply doesn't need oHost, it can much more easily just use thisform in any place it'd be using this.oHost.
>this doesn't >form.control.method() > lo = newobject('anything') > lo.oCreator = this > this.addproperty('oSomething',lo) >endproc >form.control.destroy() > this.oSomething = .null. >endproc > >anything.destroy() > this.oCreator = .null. >endproc >You've established a bi-directional link between the two controls. A refers to B and B refers to A. Neither A's nor B's Destroy can fire because of the outstanding object ref that the other object is holding. Remember Destroy() is an event notification, it happens when all the references to an object have been removed. To successfully break the links you need the code I already posted.