General information
Category:
Object Oriented Programming
>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
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only