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

formshow与 formcreate解决方案

2012-03-28 
formshow与 formcreate哪位大侠讲下formshow与 formcreate之间的区别哈。详细点为好,为了这个浪费了好多时

formshow与 formcreate
哪位大侠讲下formshow与 formcreate之间的区别哈。
详细点为好,为了这个浪费了好多时间

[解决办法]

Delphi(Pascal) code
var  a: tform;begin  a := tform.Create(nil); //formcreate  a.show; //formshow;  a.hide;  a.show; //formshow;  a.free;end;
[解决办法]
触发条件不同

create是分配内存,formshow是展现,

顺序是create-show

即使没有show 仍可操作对象

但是没有create那么久不可以show了
[解决办法]
formCreate取決于OldCreateOrder屬性設定:
若為true,在構造函數里面觸發;
若為False,則在AfterConstructor里面執行

formshow取決于Visible屬性的設定:
SetVisible——>發送組件消息Perform(CM_VISIBLECHANGED)——>觸發wincontrol.UpdateControlState——>若是Form觸發 UpdateShowing——>發送組件消息Perform(CM_SHOWINGCHANGED)——>執行消息處理函數CMShowingChanged——>執行DoShow——最終觸發Onshow
[解决办法]
探讨

触发条件不同

create是分配内存,formshow是展现,

顺序是create-show

即使没有show 仍可操作对象

但是没有create那么久不可以show了

[解决办法]
探讨

formCreate取決于OldCreateOrder屬性設定:
若為true,在構造函數里面觸發;
若為False,則在AfterConstructor里面執行

formshow取決于Visible屬性的設定:
SetVisible——>發送組件消息Perform(CM_VISIBLECHANGED)——>觸發wincontrol.UpdateControlState——>……

热点排行