多页组件(TPageControl)使用方法详解实例

TPageControl 组件是一组页面集,用于构造一个多页对话框,它显示多个交互页(TTabSheet 对象),用户通过选择出现在控制上部的标签,可以选择不同的页。在设计时要加入新页,用鼠标右键单击该组件对象,出现一弹出菜单,选择“New Page”菜单项。
此组件用于需要显示大量信息的时候,屏幕上不可能把这些信息同时显示出来,解决的办法之一就是打开多个窗口,但是要管理好这些窗口不是一件很简单的事。最好的解决办法就是把这些信息分门别类,放在同一个窗口的不同页上,这样能够节省大量的屏幕空间,翻阅起来又非常方便,就好比一本书,如果把书的每一页拆下摊在桌子上,要占很大的地方,如果装订成书,就只占一本书的地方。
Windows 风格的多页组件是用TPageControl 组件实现的,在TPageControl 组件上按下鼠标右键,在弹出的菜单中选择“New Page”命令,Delphi 7 将自动增加一页,默认的标签为“TabSheet+序号”。
多页组件具有如下特点:
? 在设计期就能够直接按多页组件在页与页之间切换,而Win 3.1 风格的多页组件只有在修改ActivePage 属性后才能切换到另一页,不方便也不直观。
? 不需要与TTabControl 组件配合使用,在程序中也不需要响应按钮的事件。
? TPageControl 组件的每一页都是一个TTabSheet 对象,为在运行时操纵每一页提供了极大方便。
1.TPageControl 组件的典型用法
TPageControl 组件主要用于程序的选项窗口,因为选项窗口拥有很多方面的设置。在TPageControl组件上单击鼠标右键,在弹出式菜单中选中“New Page”菜单命令,将会增加一个新的页面。对于TPageControl 组件,利用鼠标左键单击标签与单击页面位置选中的对象是不同的。如果单击标签,则选中了整个组件,同时设置当前激活页,这时按下Delete 键,会把整个组件删除。如果单击页面位置,则选中了当前激活页的页面,这时按下Delete 键,只删除当前选中的页面。在TPageControl 组件的不同页面中,可以加入不同的组件。
2.TPageControl 组件的重要属性
·ActivePage 指定或返回当前活动的页
·ActivePageIndex 此属性可以使某个序号的页成为当前活动的页
·Images 此属性用于指定一个图像列表
·PageCount 此属性返回多页组件的页数
·Pages 此属性返回由多页组件上所有页组成的数组
下面介绍程序中TPageControl 组件常用的属性。
(1)ActivePage 属性
在选中整个组件的情况下,改变ActivePage 属性,可以改变当前的激活页。
(2)ActivePageIndex 属性
此属性可以使某个序号的页成为当前活动页,在程序中,经常利用此属性来获取当前页。
(3)Images 属性
改变Images 属性,使之与某个ImageList
组件相关联,为每个页指定一个图标,方法为改变
ImageIndex 属性,指定相关ImageList 组件中的图标索引值。
(4)Pages 属性
此属性返回由TPageControl 组件上所有的页组成的数组。利用此数组可以对TPageControl 组件的页TabSheet 进行相关的操作,如Caption、Enabled、Hint、Visible 等属性。
3.TPageControl 组件的重要方法
·FindNextPage 此函数返回CurPage 参数指定的页的相邻页
·SelectNextPage 此过程用于选择当前页的前一页或下一页
下面介绍程序中TPageControl 组件的常用方法。
(1)FindNextPage 方法
此方法可以返回CurPage 参数指定页的相邻页,它包含3 个参数。
? CurPage 参数:取值为TTabSheet 类型,用于指定TTabSheet。
? GoForward 参数:取值为Boolean 类型,True 值取下一页,False 值取上一页。
? CheckTabVisible 参数:取值为Boolean 类型,True 值为检查TTabSheet 的TabVisible 属性,如果TabVisible 属性为False,则不显示此页而直接跳至下一页或上一页;如果CheckTabVisible 参数为False,则不检查TTabSheet 的TabVisible 属性,即不管TabVisible 属性为True 还是False,都显示这一页的内容。
下面的代码是将一个名称为PageControl1 的TPageControl 组件顺序往下移动一页,而不检测TTabSheet 的TabVisible 属性:
PageControl.ActivePage:=PageControl.FindNextPage(P.ActivePage,True,False);
(2)SelectNextPage 方法
此方法用于选择当前页的上一页或下一页,与FindNextPage 方法类似,只是其参数中没有CurPage参数,只有GoForward 参数和CheckTabVisible 参数,取值及功能请参见FindNextPage 方法的说明。
下面的代码是将一个名称为PageControl1 的TPageControl 组件顺序往前移动一页,并且检测TTabSheet 的TabVisible 属性:
PageControl.SelectNextPage(False,True);
Tab 组件(TTabControl)
TTabControl 组件由几个包含不同控制的页组成,是一个单独的对象。当前的Tab 改变时,该组件在OnChange 事件句柄中直接更新相关的内容,以反映这种改变。
1.TTabControl 组件的典型用法
TTabControl 组件使用起来,根本不会使程序简单化,所以不提倡使用此组件,可以用TPageControl组件代替。
与多页组件不同的是,虽然Tab 组件上可以有一组按钮,但它们的客户区是公用的,当用户选择其中某个按钮时,将触发OnChange 事件。在处理OnChange 事件的句柄中,必须自己定义怎样操纵客户区上的内容。例如,可以用Tab 组件做一个图片管理器,用户选择不同的按钮,Tab 按钮的客户区就显示不同的内容(用户必须用代码实现)。
2.TTabControl 组件的重要属性
·Canvas 返回Tab 组件的画布
·HotTrack 当鼠标指向Tab 组件的某个按钮时,该按钮的标签就自动加亮显示
·Images 此属性用于指定一个图
像列表
·Multiline 所有的按钮都显示在一行或自动分成几行显示
·MultiSelect 允许同时选择多个Tab 组件的按钮
·ScrollOpposite 用户单击另一行上的按钮后,前一行移到最下面或最上面
·Style 此属性用于设置Tab 组件的风格
·TabHeight 此属性用于设置按钮的高度
·TabWidth 此属性用于设置按钮的宽度
·TabIndex Tab 组件上的每个按钮的序号
·TabPosition Tab 组件上的按钮显示的位置
·Tabs 此属性用于设置Tab 组件上的按钮
下面介绍程序中TTabControl 组件经常用的属性。
(1)Images 属性
在Images 属性中与ImageList 组件关联,可以为每个标签设置一个图标。主要方法是将一个ImageList 组件中调入n 个图片,然后将TTabControl 组件的Images 属性设置为拥有图片列表的ImageList 组件,就可以看见TTabControl 组件的标签页上有图标显示。
(2)Multiline 属性
此属性用于设置TTabControl 组件标签按钮的显示位置。True 值表示按钮可以自动分成几行显示;False 值表示按钮显示在一行,如果一行不能显示全部按钮,则在按钮右侧显示两个可以左右移动标签按钮的箭头状按钮。
(3)MultiSelect 属性
此属性用于设置TTabControl 组件是否可以选择多个标签按钮。MultiSelect 属性必须与Style 属性配合使用,当MultiSelect 属性为True 值时,并且Style 属性的取值不为tsTabs 值时,用户在按下Ctrl键的情况下单击标签按钮时可以选择多个;当MultiSelect 属性为False 值时,不管Style 属性为何值,只能选择一个标签按钮。

发布了20 篇原创文章 · 获赞 1 · 访问量 5431

猜你喜欢

转载自blog.csdn.net/yygyyygy1233/article/details/85376404