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;

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/blogpro/p/11453508.html

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

RzPageControl(pagecontrol)的相关文章

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

自定义PageControl样式

#define iOS7 ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0) //调用方法 改变PageControl样式 [self changePageControlImage:self.detailPageControl]; //改变pagecontrol中圆点样式 - (void)changePageControlImage:(UIPageControl *)pageControl{ static UIImage *

IOS之pageControl

用户点击页面控件,会触发UIControlEventValueChanged事件,并启动设置为控件动作的任何方法.可以通过调用currentPage查询控件的新值,并通过调整numberOfPages属性设置可用的页面数. // 初始化页面控件pageControl.numberOfPages = 9;pageControl.currentPage = 0; [pageControl addTarget:self action:@selector(pageTurn) forControlEven

学习IOS开发UI篇--UIScrollView/delegate/pagecontrol/UITimer

1.UIscrollView的属性 ================================================== 1.1 常见属性 @property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动的位置 @property(nonatomic) CGSize contentSize; 这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远) @property(nonatomic) UIE

swift 设置图片定时手势轮播,scrollview及修改pageControl按钮颜色

首先: 设置使用UIScrollViewDelegate代理协议 其次需要初始化全局变量: var picArray = [String]() //图片数量 let scrollview = UIScrollView() let pageControl = UIPageControl() var timer = NSTimer() 再次: 设定scrollview 与pageControl 的frame : 接着,循环图片,添加到scrollview中: for(var i=0;i<self.p

保持pageControl与现实图片一致

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { double pageDouble = self.headerScroll.contentOffset.x/self.headerScroll.frame.size.width; int page = (int)(pageDouble + 0.5); self.pageControl.currentPage = page; }

pageControl页码实时更新的实现

iOS开发过程中会经常遇到scrollView与pageControl混合使用的情况.scrollView与pageControl的配合逻辑代码一般是写在以下代理函数中的: -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 即在scrollView滚动结束时pageControl才会更新代码,这样可以防止pageControl页码的逻辑混乱.但这同样会出现一个问题,那就是在用户快速滑动scrollView的时候,page

分页控件(PageControl)的相关属性说明

UIPageControl *pageControl = [[UIPageControl alloc] init]; pageControl.center = CGPointMake(w * 0.5, h - 20); pageControl.bounds = CGRectMake(0, 0, 150, 50); // 一共显示多少个圆点(多少页) pageControl.numberOfPages = 4; // 设置非选中页的圆点颜色 pageControl.pageIndicatorTin

PageControl(弹性滚动)

使用网上源码KYAnimatedPageControl self.pageControl = [[KYAnimatedPageControl alloc]initWithFrame:CGRectMake(CGRectGetWidth(self.view.bounds)/2-50, CGRectGetHeight(self.view.bounds) - 100, 100, 50)];    self.pageControl.pageCount = 4;//数量    self.pageContro