Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Releasing objects?
Message
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00053676
Message ID:
00054698
Views:
36
>>>>>>>What's the proper way to release an object? For example, if I :
>>>>>>>x=Createobject('myobject') where myobject is a class based on the
>>>>>>>cutom class (and thus, has no Release method built in)? x.Destroy()
>>>>>>>doesn't work since destroy is an even. I hate using Release x.
>>>>>>
>>>>>>why? if you're going to create in code, it makes sense (and easy reading) to release in code.
>>>>>
>>>>>I am releasing in code. I would like to have a method in my class that
>>>>>releases itself, however. So I could have the following easily readable code:
>>>>>
>>>>>o = Createobject('myobject')
>>>>>o.Show()
>>>>>o.This()
>>>>>o.That()
>>>>>o.TheOther()
>>>>>o.Release()
>>>>>
>>>>>
>>>>>Instead, I'm forced to change the last line to:
>>>>>
>>>>>"Release o", which I think is ugly.
>>>>
>>>>Why don't you put the "RELEASE o" in a user defined Release method?
>>>>
>>>>Vlad
>>>
>>>Tried. Doesn't work. I made a release method that did a "Release this", but it
>>>did nothing.
>>
>>Something is wrong. It should work. What do you mean by "it did nothing"? Can you still use the object? Do you still have the variable that keeps the reference to the object?
>>
>>Vlad
>
>Here is what I did:
>
>otest = CreateObject('test')
>? Type('otest') (returns O)
>otest.Release() (in the release method for otest, which i created, I have one line, "release this")
>? Type('otest') (_still_returns O)
>
>Thus, the "release this" in otest.Release() isn't releasing the object. Any ideas?
>
>oTest is based on a custom class.

Michael,

Don't check

type("oTest")

Check oTest itself in the Debugger.
Put both oTest and type("oTest") in the watch window,
and you will see that after calling oTest.Release()
Value of oTest turns there from (Object) to .NULL.,
but type("otest") will remain O
So, the object really is released.

Nick
Nick Neklioudov
Universal Thread Consultant
3 times Microsoft MVP - Visual FoxPro

"I have not failed. I've just found 10,000 ways that don't work." - Thomas Edison
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform