RzPageControl(pagecontrol)实现多标签的动态添加,切换,关闭

https://blog.csdn.net/pdw2009/article/details/76157651

使用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;

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

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

  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;

原文地址:https://www.cnblogs.com/tc310/p/10857927.html

时间: 2024-08-08 04:15:10

RzPageControl(pagecontrol)实现多标签的动态添加,切换,关闭的相关文章

2015.1.13(a标签,动态添加,乱码)

一.<a>标签 在a标签中传值,动态传递href,可以用jquery动态添加 var t = encodeURI($("#titleName").val()); $("#subHref").attr("href","/admin/questionTestPaper/list?checked=" + $("#checked").text() +"&titleName="

jquery-ui-1.11.4 tabs 动态添加和关闭

var tabs = $( "#tabs" ).tabs(); var tabCount=0; function jqui_addTab(tabid,url,caption){ if($("#tabs-"+tabid).length==0){ tabCount++; var panelId = tabs.find( ".ui-tabs-active" ).attr( "aria-controls" ); tabs.find('

RzPageControl(pagecontrol)

实现多标签的动态添加,切换,关闭 使用RzPageControl来实现多标签页使用菜单来打开标签页,通过标签页的caption来判断将标签页是否已经被打开过了.1.创建标签页,并判断是否是已经打开过的页面 procedure TFmain.Page1Click(Sender: TObject); var newpage:TRzTabSheet; index:integer; begin newpage:=nil; if not gotopage('第一页',newpage) then begin

javascript的document中的动态添加标签

document的高级篇中提供了节点操作的函数,具体包括:获取节点,改变节点,删除节点,替换节点,创建节点,添加节点,克隆节点等函数.我们可以利用这些函数动态改变html的节点. 1.JavaScript      ___| ———————————————————————————————————————————————————————— <script type="text/javascript"> function test1(){//对个节点的ID相同时候的情况 var

js获取不到动态添加的标签的值的解决方法

遇到了js无法获得动态添加的标签的值,百度了一番,最后自己解决了问题,但是原理现在还不怎么明确. $("input[id='txtAttValue']").each(function (i) { if ($(this).val().trim() == "") { $("span[id='error']").eq(i).css("display", "block"); } }); 好像也只有$("s

js动态添加和删除标签

html代码 <h1>动态添加和删除标签</h1> <div id="addTagTest"> <table> <thead><tr><th>姓名</th><th>年薪</th><th>操作</th></tr></thead> <tbody id="info"> </tbody>

HTML标签 select 里 动态添加option

HTML标签 select 里 动态添加option: ☆ var today = new Date(); var yearNow = today.getFullYear(); var optiongYears_className = [yearNow, yearNow+1]; var $selyear = $("select#classNameYear_add"); $.each(optiongYears_className, function (i, val) { if(i==0)

jquey学习2之jquery动态添加页面片段

第一个方法:append()方法 [1]$(selector).append(content)//向匹配的所有标签中的内容末尾处添加Html代码,会编译成页面显示. 1 <html> 2 <head> 3 <script type="text/javascript" src="/jquery/jquery.js"></script> 4 <script type="text/javascript&quo

使用JavaScript动态添加CSS样式规则

原文链接: Add Rules to Stylesheets with JavaScript原文日期: 2014-09-04翻译日期: 2014-09-05翻译人员: 铁锚 现在Web应用中有大量的JavaScript代码,而我们也一直在追寻各种使他们更快的解决方案. 我们通过 事件代理(event delegation) 让事件监听更高效, 我们利用 函数降频技术(function debouncing) 来限制一段时间内给定方法被调用的次数,请参考: 如何防止事件函数的高频触发(中文翻译)