读书人

请问:Form的OnDestroy事件中的代码执

发布时间: 2012-07-30 16:19:05 作者: rapoo

请教:Form的OnDestroy事件中的代码执行次序
请教:Form的OnDestroy事件中的代码执行次序,是在先释放Form中的组件,再执行OnDestroy中的代码吗?
释放应该是在析构函数里面自动进行的吧?

[解决办法]
后释放Form中的组件
[解决办法]
看源码

Delphi(Pascal) code
destructor TCustomForm.Destroy;begin  if not (csDestroying in ComponentState) then GlobalNameSpace.BeginWrite;  try    if OldCreateOrder then DoDestroy;    MergeMenu(False);    if HandleAllocated then DestroyWindowHandle;    Screen.RemoveForm(Self);    FCanvas.Free;    FIcon.Free;    FreeAndNil(FActionLists);    inherited Destroy;  finally    GlobalNameSpace.EndWrite;  end;end;
[解决办法]
探讨
看源码

Delphi(Pascal) code


destructor TCustomForm.Destroy;
begin
if not (csDestroying in ComponentState) then GlobalNameSpace.BeginWrite;
try
if OldCreateOrder then DoDestroy;
Me……

[解决办法]
写个测试程序就知道了,因oldcreateorder属性的不同而不同
oldcreateorder = False,则ondestroy在组件释放之后,否则,在组件释放之前。
[解决办法]
探讨
下断点为什么不成功呢

[解决办法]
探讨
写个测试程序就知道了,因oldcreateorder属性的不同而不同
oldcreateorder = False,则ondestroy在组件释放之后,否则,在组件释放之前。

[解决办法]
纠正一下 :
因oldcreateorder属性的不同而不同
oldcreateorder = False,则ondestroy在组件释放之前,否则,在组件释放之后。

to s11ss: 自己写个程序确认一下再否定我也不迟。
[解决办法]
探讨
纠正一下 :
因oldcreateorder属性的不同而不同
oldcreateorder = False,则ondestroy在组件释放之前,否则,在组件释放之后。

to s11ss: 自己写个程序确认一下再否定我也不迟。

[解决办法]
探讨

引用:
纠正一下 :
因oldcreateorder属性的不同而不同
oldcreateorder = False,则ondestroy在组件释放之前,否则,在组件释放之后。

to s11ss: 自己写个程序确认一下再否定我也不迟。
你自己看下TCustomForm源码确认一下再否定我也不迟。
你的测试肯定有问题。

读书人网 >.NET

热点推荐