首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-07-30 
请教:Form的OnDestroy事件中的代码执行次序请教:Form的OnDestroy事件中的代码执行次序,是在先释放Form中的

请教: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源码确认一下再否定我也不迟。
你的测试肯定有问题。

热点排行