zoukankan      html  css  js  c++  java
  • RzPageControl(pagecontrol)

    实现多标签的动态添加,切换,关闭

    使用RzPageControl来实现多标签页
    使用菜单来打开标签页,通过标签页的caption来判断将标签页是否已经被打开过了.
    1.创建标签页,并判断是否是已经打开过的页面

    procedure TFmain.Page1Click(Sender: TObject);
    var
    newpage:TRzTabSheet;
    index:integer;
    begin
    newpage:=nil;
    if not gotopage('第一页',newpage) then
    begin
    index:=findpage('第一页');
    if index=-1 then exit;
    Form1:=TForm.Create(nil);
    Form1.Parent:=Fmain.pagecontrol1.Pages[index];
    Form1.Align:=alclient;
    Form1.BorderStyle:=bsnone;
    Form1.Show;
    end;
    end;
    gotopage函数,跳转到需要显示的那页,不存在的话就创建那一页
    {
    gotopage:跳转到某页
    如果存在这页,跳转后返回true;
    如果不存在,则新建一页,返回false;
    }
    function TFmain.gotopage(scaption:string;newpage:TRzTabSheet):boolean;
    var
    i:integer;
    isExists:Boolean;
    begin
    newpage:=nil;
    isExists:=false;
    if length(scaption)<=0 then exit;
    for i:=0 to pagecontrol1.PageCount-1 do
    begin
    if pagecontrol1.Pages[i].Caption=scaption then
    begin
    pagecontrol1.ActivePage:=pagecontrol1.Pages[i];
    isExists:=true;
    break;
    end;
    end;
    if not isExists then
    begin
    newpage:=TRZTabSheet.Create(pagecontrol1);
    newpage.Caption:=scaption;
    newpage.PageControl:=pagecontrol1;
    pagecontrol1.ActivePage:=newpage;
    end;
    result:=isExists;
    end;
    findpage函数,找到指定caption的那一页,返回那页的index,如果那页不存在,返回-1
    {
    findpage:根据标题查询页,返回index
    参数为页caption
    没有找到返回-1,找到返回index
    }
    function TFmain.findpage(scaption:string):integer;
    var
    i:integer;
    isExists:boolean;
    begin
    isExists:=false;
    for i:=0 to pagecontrol1.PageCount-1 do
    begin
    if pagecontrol1.Pages[i].Caption=scaption then
    begin
    pagecontrol1.ActivePage:=pagecontrol1.Pages[i];
    isExists:=true;
    result:=i;
    break;
    end;
    end;
    if not isExists then result:=-1;
    end;
    View Code

    2.双击标签,关闭标签页
    RzpageControl的双击事件,如果标题不是’首页’就关闭当前显示的这页

    procedure TFmain.PageControl1DblClick(Sender: TObject);
    begin
    if PageControl1.ActivePage.Caption<>'首页' then
    pagecontrol1.CloseActiveTab;
    end;
    View Code

    3.通过关闭按钮关闭
    先设置ShowCloseButton属性为true
    然后重写OnClose事件

    procedure TFmain.PageControl1Close(Sender: TObject;
    var AllowClose: Boolean);
    begin //如果只剩下一页不关闭,或当前页是首页不关闭
    if (self.PageControl1.PageCount=1) or (self.PageControl1.ActivePage.Caption='首页') then
    begin
    AllowClose:=False;
    Exit;
    end;
    AllowClose:=True;
    end;
    View Code
  • 相关阅读:
    使用CSS3制图
    hdu4585 &amp; BestCoder Round #1 项目管理(vector应用)
    ZooKeeperEclipse 小工具
    svn代码统计工具的金额
    【教你zencart仿站 文章1至6教训 高清1280x900视频下载】[支持手机端]
    [Django]models定义choices 字典中的页面显示值
    xml publisher根据条件显示或隐藏列
    hdu 1398 Square Coins(生成函数,完全背包)
    ubuntu软件中心崩溃
    PHP socket类
  • 原文地址:https://www.cnblogs.com/blogpro/p/11453508.html
Copyright © 2011-2022 走看看