用的是rz的控件    关闭后怎么打开unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzTabs, ExtCtrls, RzPanel, RzButton, RzSplit, StdCtrls;type
  TForm1 = class(TForm)
    RzSplitter1: TRzSplitter;
    RzPanel1: TRzPanel;
    RzPageControl1: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    TabSheet3: TRzTabSheet;
    TabSheet4: TRzTabSheet;
    TabSheet5: TRzTabSheet;
    TabSheet6: TRzTabSheet;
    RzButton1: TRzButton;
    RzButton2: TRzButton;
    RzButton3: TRzButton;
    RzButton4: TRzButton;
    RzButton5: TRzButton;
    RzButton6: TRzButton;
    TabSheet7: TRzTabSheet;
    Label1: TLabel;
    procedure RzButton6Click(Sender: TObject);
    procedure RzButton5Click(Sender: TObject);
    procedure RzButton4Click(Sender: TObject);
    procedure RzButton3Click(Sender: TObject);
    procedure RzButton2Click(Sender: TObject);
    procedure RzButton1Click(Sender: TObject);
    procedure RzPageControl1Close(Sender: TObject;
      var AllowClose: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.RzButton6Click(Sender: TObject);
begin
  RzPageControl1.ActivePageIndex:=0;
  //TabSheet1.TabVisible:=true;
end;procedure TForm1.RzButton5Click(Sender: TObject);
begin
  RzPageControl1.ActivePageIndex:=1;
  TabSheet2.TabVisible:=true;
end;procedure TForm1.RzButton4Click(Sender: TObject);
begin
  RzPageControl1.ActivePageIndex:=2;
  TabSheet3.TabVisible:=true;
end;procedure TForm1.RzButton3Click(Sender: TObject);
begin
  RzPageControl1.ActivePageIndex:=3;
  TabSheet4.TabVisible:=true;
end;procedure TForm1.RzButton2Click(Sender: TObject);
begin
  RzPageControl1.ActivePageIndex:=4;
  TabSheet5.TabVisible:=true;
end;procedure TForm1.RzButton1Click(Sender: TObject);
begin
  RzPageControl1.ActivePageIndex:=5;
  TabSheet6.TabVisible:=true;
  //TabSheet6.end;procedure TForm1.RzPageControl1Close(Sender: TObject;
  var AllowClose: Boolean);
begin
  AllowClose:=True;end;end.
用的是rzpagecontrol的showclosebuttononactivetab属性怎么么实现关闭打开关闭在标签的×符号关闭打开在按钮打开                     求大神支招!!!!!
之前用的是隐藏但是有一些小问题   

解决方案 »

  1.   

    控件的Close时间改一下
    procedure TForm1.RzPageControl1Close(Sender: TObject;
      var AllowClose: Boolean);
    begin
       RzPageControl1.ActivePage.TabVisible:=false
      //如有必要可与指定当前页
    end;
      

  2.   

    shw014     你好      之前用的就是这个               但是这个语句有bug         点击关闭按钮      只把标签给隐藏      页面还显示在哪里
      

  3.   

    之前做过类似,我的思路是这样
    1、创建新tab页时的部分代码class function TSMUIDrv.LoadFuncForm(parent: TRzPageControl; clsName: string): TAWin;
    var
      i,j: integer;
      tmp: TComponent;
      sht: TRzTabSheet;
    begin
      //form exists?
      for i:=0 to parent.PageCount-1 do
      begin
        for j:=0 to parent.Pages[i].ControlCount-1 do
        begin
          if parent.Pages[i].Controls[j].ClassName=clsName then
          begin
            parent.ActivePageIndex := i;
            result := TAWin(parent.Pages[i].Controls[j]);
            exit;
          end;
        end;
      end;
      //to load new form
      sht := TRzTabSheet.Create(parent);
      sht.PageControl := parent;
      tmp := LoadComponent(clsName,sht);
      if tmp<>nil then
      begin
        result := TAWin(tmp);
        result.Parent := sht;
        TAWin(tmp).BorderStyle := bsNone;
        sht.Caption := TAWin(tmp).Caption;
        result.Align  := alClient;
        sht.Tag := TAWin(tmp).Tag;
        result.Show;
        parent.ActivePageIndex := parent.PageCount-1;
      end
      else begin
        sht.Free;
        result := nil;
      end;
    end;2、关闭窗口
    procedure TFmMain.OnCloseActivePage(sender: TObject; var allowClose: boolean);
    var
      i: integer;
    begin
      for i:=0 to pcCtl.ActivePage.ControlCount-1 do
      begin
        if (pcCtl.ActivePage.Controls[i] is TAWin) then
        begin
          if TAWin(pcCtl.ActivePage.Controls[i]).Dirty and
             (TSMSystem.MessageBox('数据未保存,是否关闭?',MB_ICONQUESTION or MB_YESNO)=IDNO) then
          begin
            allowClose := false;
            exit;
          end;
          TAWin(pcCtl.ActivePage.Controls[i]).Free;
          allowClose := true;
        end;
      end;
    end;
    3、运行效果
      

  4.   

    创建TabSheet简单,关键是TabSheet1内容加上其它控件。