有没有办法控制Delphi表单破坏其组件的顺序?
当表单正在销毁时我得到了AV,因为它在访问第一个组件的另一个组件之前销毁了一个组件。
目前,除了免费最终确定部分中的第一个组件
之外,我无法避免AV答案 0 :(得分:-1)
我做了一些搜索和一些测试,发现如何控制Delphi表单组件的破坏顺序。
在设计时和运行时有两种方法:
在设计时,编辑表单的DFM,将第一个组件的对象块作为第一个块移动到第一个块之后必须释放的任何其他组件的任何其他对象块之前。 / p>
在运行时,在OnCreate形式中,将第一个组件的ComponentIndex属性更改为低于依赖于它的其他组件的任何值,Say 0,这将使它最后一个被释放。
示例:FirstComp.ComponentIndex := 0;
就是这样!
正如您所看到的,Delphi以与它们添加到表单(LIFO)相反的顺序释放组件,但我们可以像我解释的那样改变这个顺序。
感谢大家的宝贵帮助。欣赏它。