Robert,
Destroy() is an
event, it is a
notification that an object is being removed from memory because there are no more object references to it. This gives you a chance to do any final clean up before it's gone.
You
can not call the Destroy() with the intent of causing the object to destruct it simply won't happen. Do this code in the command window one line at a time:
ox = createobject( "form" )
ox.Visible = .t.
? ox.Destroy()
ox = .null.
If you turn on event tracking in the debugger you can see that Destroy is triggered only once the ox = .null. executes. It does not happen when the ? ox.Destroy() is called.
>Well, add a call to destroy the lower-level class in the destroy() function of the upper-level class.