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

解决方案 »

  1.   


    var
      a: tform;begin
      a := tform.Create(nil); //formcreate
      a.show; //formshow;
      a.hide;
      a.show; //formshow;
      a.free;
    end;
      

  2.   

    触发条件不同create是分配内存,formshow是展现,顺序是create-show即使没有show 仍可操作对象但是没有create那么久不可以show了
      

  3.   

    formCreate取決于OldCreateOrder屬性設定:
      若為true,在構造函數里面觸發;
      若為False,則在AfterConstructor里面執行formshow取決于Visible屬性的設定:
    SetVisible——>發送組件消息Perform(CM_VISIBLECHANGED)——>觸發wincontrol.UpdateControlState——>若是Form觸發 UpdateShowing——>發送組件消息Perform(CM_SHOWINGCHANGED)——>執行消息處理函數CMShowingChanged——>執行DoShow——最終觸發Onshow
      

  4.   

    樓主說的formcreate應該是指事件,而不是構造函數,其實構造函數本身并不分配空間,應該是起初始化作用
      

  5.   

    formshow的執行流程,一定要等form創建完之后——我在,故我能思;所以,formshow也一定是在formcreate后面
      

  6.   

    2楼讲的比较通俗易懂。楼主可以自己建一个Application,给Creat和Show不同的提示来看看流程