C++ Builder初学问与答11

11.工具条组件
87)
问:工具条是Windows编程经常要用的, C++Builder能不能实现这个功能呢?
答:当然可以,工具条是由许多具有图形的按钮组成的,这些按钮被分隔符分隔成许多组,每个组都能够完成特定的工作。工具条上的按钮具有与位图按钮相似的特性——可以拥有多个位图,当按钮处于不同状态时,例如按下、失效等,将显示不同的位图。以前C++Builder制作工具条的方法是通过把加速按钮放在面板组件Panel上实现的。现在,我们不必使用这两种组件的组合,只要使用ToolBar就可以创建工具条了。工具条是比较难掌握的,它之所以不容易掌握是因为它包含的TToolButton组件有三个属性:Grouped,AllowAllUp和Down,它们的组合可以产生各种不同效果的按钮组。这三个属性我们一定要好好理解。

88) 问:那请给我介绍一下Toolbar这个组件的使用方法好吗?
答:好的,我们先从ToolBar的属性入手,通过对一些重要属性的分析来了解它。ToolBar包含一些前面没有见过的属性:
ButtonHeight 属性指出了工具条中按钮的高度。
ButtonWidth 属性用来设定工具条中按钮的宽度。
Flat 属性为true时,使工具条透明,同时使工具条上按钮之间的边界消失。俗称平面工具条,它的缺省值为False。
Indent 用来在工具条的左边创建一个边沿区。
ShowCaptins 确定是否允许在工具条的按钮上显示标题。缺省值为False。
Wrapable 设定是否允许工具条上的按钮换行。缺省值为True。
List 属性,当这个属性为True时,工具条上按钮的图标在左,标题在右。为False时,按钮的图标在上,标题在下。缺省值为False。
Images 用来设定正常情况下,按钮上显示的图标列表。
HotImages 用来设定当鼠标移动到按钮上显示的图标列表。
DisabledImages 用来设定按钮失效时显示的图标列表。

工具条上所有按钮显示的图标就包含在这三个图标列表中。

在前面介绍的ListView组件中,属性LargeImages和SmallImages分别表示在两种不同的状态下显示的图标列表。ToolBar的这三种属性也有类似的特点,它们分别表示在正常状态、鼠标指向工具条以及按钮失效时显示的图标列表。
此外,还有几个运行时态属性:
ButtonCount属性,指出了工具条中按钮的个数。
Buttons存放着工具条中按钮的列表。
RowCount指示着工具条的行数。

89) 问:C++Builder为什么要采用图标列表的方式来管理工具条上的图标呢?
答:因为这样可以集中统一地管理大量的图标,从而大大地减轻了程序员的负担。
答:要为应用程序建立工具条,可以按照下面的步骤:
(1)从选项卡Win32中选择工具条组件,放置在窗体上。
注意,刚放置在窗体上的工具条组件一定是在窗体的顶部,因为这时工具条的Align属性被设置为alTop。
(2)在窗体上增加两个ImageList组件,并为这些组件引入图标。
(3)将一个ImageList组件赋予工具条的属性Images,另一个赋予工具条的属性DisabledImages。
(4)用鼠标右键单击工具条,在弹出菜单中选择New Button。
这时将在工具条上出现一个按钮,这个按钮无标题。这是因为工具条的ShowCaption属性被设置成了False。实际上这个按钮有一个缺省的标题ToolButton1。
这个新创建的按钮与我们前面介绍的按钮都不一样,它是一个TTtoolButton组件。
(5)选中工具条上的按钮,把按钮的ImageIndex属性改为所需要图标的索引号。这个图标实际上是存放在ImageList组件中的。
(6)重复第四步和第五步,在工具条上创建更多的按钮。这样一个工具条就建立了。

90) 问:工具条上的按钮好像与普通按钮不一样,请问它有些什么特点呢?
答:工具条上的按钮是一个TToolButton组件。它包括一些与工具条有关的特性,可以简化工具条上按钮的配置,并增加一些显示特性。TToolButton有这样一些重要属性。
AllowAllUp属性允许一个组中的按钮同时全部处于未选中状态。缺省值是False。
Down属性指定按钮是否被选中。在设计期间把该属性设置为True,可以使按钮初始化为选中状态,缺省值为False。
DropDownMenu属性把一个弹出菜单与按钮相连。
ImageIndex属性指定出现在按钮上的图标的索引号。
Indeterminate属性确定按钮是否处于一种既不是选中也不是未选中的中间状态。缺省值为False。
Wrap属性强迫这个按钮是这一行的最后一个按钮,下一个按钮从下一行开始。缺省值为False。
Style属性用来确定按钮的样式,它可以有五种不同的取值,这五种取值分别表示五种不同样式的按钮。
tbsButton表示按钮正常显示与一般的加速按钮一样。
tbsCheck表示单击这种类型的按钮时可以切换Down属性。一旦你选中了该按钮,那么按钮将保持选中状态直到再次单击。
tbsDropDown表示按钮显示成一个向下的箭头。
tbsSeparator表示按钮显示成工具条上的一个空格。
tbsDivider表示按钮显示成工具条上的一个垂直线段。
Grouped属性确定是否允许连续的多个tbsCheck类型的按钮组成一组。缺省值是False。如果连续的多个按钮,每个按钮的Grouped属性都设置为True,同时Style属性都设置为tbsCheck,那么这些组件一次只能选取一个。选中其中一个按钮将使其他按钮变成未选中状态。

91) 问:如何用加速按钮创建工具条?
答:工具条的另一种创建方法是使用面板组件+加速按钮SpeedButton的方法。加速按钮在前面曾经提到过,它与位图按钮很相似,也使用属性Caption和Glyph放置文本和图标,不过加速按钮还有一些属性是比较特殊的。
下面我们先介绍加速按钮的属性:
GroupIndex:通过GroupIndex属性可以使加速按钮像单选按钮那样使用。也就是说,把多个单选按钮的GroupIndex属性赋予相同的值以便组成一组,这样这个组中的按钮一次只能有一个按钮可以被按下,当你按下一个按钮时,其他按钮就会弹起。需要注意的是GroupIndex必须大于0。如果GroupIndex属性等于0,那么表示该按钮是一个普通的加速按钮。
Down:属性值可以控制按钮是否处于按下状态,当该属性值为True时,按钮处于按下状态。你可以在设计时把属性Down设置为True,这样当程序运行时,按钮一开始就处于按下状态。
AllowAllUp:这个属性用来指定一个组中的所有加速按钮是否可以同时处于未被按下的状态。当该属性为True时,单击该组中被按下的按钮,这个按钮会弹起。当该属性为False时,单击该组中被按下的按钮,这个按钮不会弹起。
如果你比较一下加速按钮和TToolButton组件就会发现,它们都有上面介绍的这三种属性,只不过TToolButton组件中使用属性Grouped来完成类似于GroupIndex的功能。

92) 问:用加速按钮设计工具条与用Toolbar组件相比有什么不同?
答:用加速按钮设计工具条时必须首先在窗体上放置面板组件,而且应该把它的Align属性设置为alTop(因为工具条一般都放在窗口的顶部)。然后在面板组件上放置加速按钮。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值