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;
注释掉的两句是我查资料上的写法,但是都不管用,创建的两个页面还是看不到....求高手指点迷津 啊
...全文
137 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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?循环执行了?

5,928

社区成员

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

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