当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++ Builder教程

C++ Builder 初学问与答 (十一)

  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,那么表示该按钮是一个普通的加速按钮。

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接