1.在cxpagecontrol中new一个实例(cxtabsheetA),点击close后检测发现该cxtabsheet已经释放.
2.动态创建一个cxtabsheetB,该对象的owner,parent,pagecontaol,caption,name...........这些都设置好了,可为什么点击close后该tcxtabsheet确没有释放?
3.请问这两者不同是怎么造成的?
4.如果我要freeandnil(参数),该参数就是动态创建的cxtabsheet,我该怎么获得该参数?说明下:close就是pagecontrol的pcoclosebutton.

解决方案 »

  1.   

    procedure TMain_F.cxPageControl1Close(Sender: TObject;
      var AllowClose: Boolean);
    begin
      if cxPageControl1.ActivePage.Caption<>'Desktop' then
      begin
        AllowClose:=True;
        cxPageControl1.ActivePage.Controls[0].Free;
      end;
    end;
      

  2.   

    procedure TMain_F.cxPageControl1DblClick(Sender: TObject);
    begin
      if cxPageControl1.ActivePage.Caption<>'Desktop' then
        cxPageControl1.CloseActiveTab;
    end;
      

  3.   

    光free不行的,得nil啊,我现在就是不知道怎么在cxpagecontrol的canclose事件下怎么获取实例对象,然后释放,如下:在该事件下,通过某种方式获取实例对象,假如采用tlist这种我存储在里面,
    for i := 1 to list.count do
      if ..........
      freeandnil(list.item[i]);
    end;说明下,我这里上面这个方式过不了;