各位高手,我自己设计了一个简单的程序,其中设置了父窗体和子窗体,子窗体右上角的关闭按钮“×”为什么不能实现关闭功能,而是实现最小化的功能?如何才能使其实现关闭功能?

解决方案 »

  1.   

    错了....,没看清楚是子窗口,
    在FormClose事件里加
    action:= caFree;
      

  2.   

    onclose里面写
    action:=cafree;
    form2:=nil;
      

  3.   

    FormCloseQuery 事件里设置 CanClose为true
      

  4.   

    你的子窗体是怎么动态建立的?
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      f2:TForm2;
    begin
      f2:=Tform2.Create(Application);
      f2.ShowModal;
      f2.Free; 
    end;是这样的吗?你把它form2从Auto-Create Form中去掉
      

  5.   

    在子窗体的FormDestroy事件中加入
    子窗体名.free;
      

  6.   

    在子窗体的ONClose事件中加入
    procedure Tform1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    action:=cafree;
    end;
      

  7.   

    感谢楼上的提醒,呵呵
    那就在FormClose事件里加
    action:= caFree;
    可以了吧?
      

  8.   

    正解应为:
    procedure TFormDetail.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
      action:=caFree ;
    end;procedure TFormDetail.FormDestroy(Sender: TObject);
    begin
      FormDetail := nil ;
    end;
      

  9.   

    Self.Release;
    这样肯定可以关闭;可以没分了