pagecontrol创建的页面怎么显示出来

yunchu89 2012-03-29 02:52:47
我在pagecontrol的OnEnter添加的事件。这个是代码:
procedure TfrmPeoInfo.pgcPageControlEnter(Sender: TObject);
var
i: Integer;
tab: TTabSheet;
begin
for i := 0 to lstPeoIn.Count - 1 do
begin
tab := TTabSheet.Create(pgcPageControl);
tab.Caption := lstPeoIn.Items[i];
tab.PageControl := pgcPageControl;
// pgcPageControl.Pages[i].TabVisible := False;
end;
// pgcPageControl.ActivePage := pgcPageControl.Pages[1];
end;
注释掉的两句是我查资料上的写法,但是都不管用,创建的两个页面还是看不到....求高手指点迷津 啊
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunchu89 2012-03-29
  • 打赏
  • 举报
回复
多谢case5166的讲解,现在有点懂了
我看见佛 2012-03-29
  • 打赏
  • 举报
回复
tab.TTabSheet.Create(pgcPageControl);//即设定控件的Owner为pgcPageControl
我看见佛 2012-03-29
  • 打赏
  • 举报
回复
tab.TTabSheet.Create(pgcPageControl);//我的理解是,这里指定当pgcPageControl释放时释放tab的内存


tab.PageControl := pgcPageControl;//这里指定tab所所属PageControl,即显示位置
yunchu89 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

沒問題啊,用Tab键让焦点在pgcPageControl上或者鼠标点里面的控件,就执行這些代码了

不过为什么要在OnEnter写?那岂不是每次进入pgcPageControl,都会重新添加页面
[/Quote]
这个pagecontrol是在一个panel上,程序执行的时候是隐藏的。没想到什么好的处理方法就写OnEnter里面了。

tab.PageControl := pgcPageControl;这一句怎么理解的?之前create中不是已经将tabsheet和pagecontrol关联起来了吗
yunchu89 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

lstPeoIn.Count - 1//你确定这个值不是0?循环执行了?
[/Quote]
我知道怎么回事了...原来这个事件没触发,需要先缩小再打开才行。不过还是多感谢你的热心啊
kaikai_kk 2012-03-29
  • 打赏
  • 举报
回复
沒問題啊,用Tab键让焦点在pgcPageControl上或者鼠标点里面的控件,就执行這些代码了

不过为什么要在OnEnter写?那岂不是每次进入pgcPageControl,都会重新添加页面
我看见佛 2012-03-29
  • 打赏
  • 举报
回复
lstPeoIn.Count - 1//你确定这个值不是0?循环执行了?
可以实现在滚动视图上加页面控制效果,这种效果的PageControl在Circa News app中可以看到。滑动条上有两种形式的page control,可以处理在大的UIScrollView中嵌套小的UIScrollView时的页面滑动情况。具体效果请看视频。滑动条上有两种形式的page control。一种是当前的页面不可以滑动,即不会有过多的内容,这时候page control 显示的是一个点,见效果图左图。一种是当前页面自己也可以滑动,比如需要滑动来显示当前页面的更多内容,也就是在大的ScrollView中嵌入了小的ScrollView,这时候的page control显示的是一个小的scroll bar,里面有一个点,当滑动页面时,里面的点会在bar里面移动,显示当前页面滑动的位置,见效果图右图。 使用方法: 代码使用主要涉及到三个函数: (id)initWithNumberOfPages:(NSInteger)numberOfPages; (void)setCurrentPage:(NSInteger)currentPage usingScroller:(BOOL)usingScroller; (void)updateScrollerAtPercentage:(float)percentage animated:(BOOL)animated; 第一个函数用于创建page control。 第二个函数用于设置当前页面,以及当前页面是否需要显示有scroll bar的pagecontrol(即效果图的右图)。 第三个函数用于更新 scroll bar。需要利用delegate函数来实现: (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView != self.scrollView) { float percentage = scrollView.contentOffset.y / (scrollView.contentSize.height - scrollView.bounds.size.height); [self.pageControl updateScrollerAtPercentage:percentage animated:YES]; } }

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧