Andrus,
I've had plenty of problems with objects not being released properly using CreateObject(). When an object is added to a container object using AddObject() VFP will handle releasing the object properly. Using CreateObject() to instantiate an class to another object's property is not containership.
Will
>Is this VFP bug ?
>I think that when form is closed, all objected referenced only from
>from properties are released automatically!
>
>>The form isn't being destroyed because of the oComm property needs to be released manually.
>>
>>Use the QueryUnload method of the form. This method is called when you click on the upper right corner button.
>>
>>
>>PROCEDURE QueryUnload
>>THIS.oComm = .null.
>>ENDPROC
>>
>>
>>>I create a comm object and event handler in form init()
>>>
>>>When the form is closed by clicking upper right corner, event handler Destroy()
>>>event does not fire. Why ?
>>>
>>>
>>>* Form Init()
>>>this.oComm = createobject( "mscommlib.MSComm" )
>>>EVENTHANDLER( this.oComm, NEWOBJECT("commevents", 'pump.prg' ) )
>>>
>>>
>>>
>>>* File pump.prg contains:
>>>
>>>DEFINE CLASS commevents AS custom
>>>IMPLEMENTS DMSCommEvents IN "mscommlib.MSComm"
>>>
>>>procedure Destroy
>>>* this event does not fire when form is closed. why ?
>>>ENDPROC
>>>
>>>PROCEDURE DMSCommEvents_OnComm() AS VOID;
>>>HELPSTRING "Occurs whenever the value of the CommEvent property changes."
>>>ENDPROC
>>>ENDDEFINE
>>>