请问:Form的OnDestroy事件中的代码执行次序
请教:Form的OnDestroy事件中的代码执行次序
请教:Form的OnDestroy事件中的代码执行次序,是在先释放Form中的组件,再执行OnDestroy中的代码吗?
释放应该是在析构函数里面自动进行的吧?
------解决方案--------------------
后释放Form中的组件
------解决方案--------------------
看源码
请教: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;
------解决方案--------------------
------解决方案--------------------
写个测试程序就知道了,因oldcreateorder属性的不同而不同
oldcreateorder = False,则ondestroy在组件释放之后,否则,在组件释放之前。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
纠正一下 :
因oldcreateorder属性的不同而不同
oldcreateorder = False,则ondestroy在组件释放之前,否则,在组件释放之后。
to s11ss: 自己写个程序确认一下再否定我也不迟。
------解决方案--------------------
------解决方案--------------------