Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
VFP6 and Object Destruction.
Message
 
 
To
22/01/1999 17:32:09
Mark Hall
Independent Developer & Voip Specialist
Keston, Kent, United Kingdom
General information
Forum:
Visual FoxPro
Category:
Object Oriented Programming
Miscellaneous
Thread ID:
00177849
Message ID:
00179307
Views:
53
>Big Snip........
>>>ENDDEF
>>>
>>>*--------- End BugDemo.Prg
>>
>>Thanks for your code. Unfortunately, I could not repro the crash. In fact, when I click at the WAIT WINDOW line, I get an error:
>>
>> PARENT is not an object
>>
>>on line:
>>
>> THIS.Parent.Children = THIS.Parent.Children - 1
>>
>>What happens if you SET RESO OFF? Can anyone else repro this crash?
>
>
>Hi Randy,
>
>I'm sorry if I was not clear, when I say crash, I mean program crash, not 'end of the world VFP crash'.
>
>The 'PARENT is not an object' is the problem. During the Destroy event of an Object I would expect the parent reference to still be valid. This is certainly the case in VFP 5 as the same code runs with no problems.


OK. Here is the scoop. This is not a bug. You can't reference this.parent in the Destory method of an object that has been removed. Make the following changed the program to make this work properly...

* in the KillItems procedure, change to use...

PROCEDURE KillItems
_SCREEN.Menu.Tools.Add.Report.Release
_SCREEN.Menu.Tools.Add.Remove.Release


* in the SubDemo class, change to use...

PROCEDURE Destroy
? "KILL " + THIS.Name
ENDPROC

PROCEDURE Release
? "RELEASE " + THIS.Name
THIS.Parent.Children = THIS.Parent.Children - 1
THIS.Parent.RemoveObject(THIS.Name)
ENDPROC
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform