4.8.2 使用工具栏组件增加工具栏
工具栏组件(TToolBar)提供了面板组件所没有的按钮治理和显示特性。要使用工具栏组件将工具栏加入窗体,
1) 将工具栏组件加入窗体(从组件面板的Win32页)。工具栏将自动地排列在窗体顶端。
2) 把工具按钮或其他控件加到工具栏中。工具按钮是设计来工作于工具栏组件的。与快速按钮相似,工具按钮能:
· 与一般的按钮作用相同。
· 被按下时在开和关两种状态间切换。
· 与一组单选按钮作用相同。在工具栏中加入工具按钮,执行下列步骤:
· 加入工具按钮。
· 给工具按钮分配图像。
· 设置工具按钮外观。
· 创建工具按钮分组。
· 答应切换工具按钮。
1.增加工具按钮
为在工具栏中加入,右击工具栏并选择NewButton。工具按钮的“拥有者”是工具栏,因此移动或隐藏工具栏也将移动或隐藏工具按钮。另外,工具栏中所有的工具按钮自动保持相同的高度和宽度。可从组件面板中选择其他控件加入工具栏中,它们也将自动保持同一高度。当工具栏中的控件在一行内排不下时,将自动转至新行。
2.给工具按钮分配图像
每个工具按钮都是用ImageIndex属性来确定其运行时显示的图像。若只提供给工具按钮一幅图像,工具按钮将使用该图像来指示按钮是否被禁用。要在设计时给工具按钮分配图像:
1) 选择包含该按钮的工具栏。
2) 在对象观察器中,将一个TTmageList对象分配给工具栏的Images属性。该图像列表包含了很多大小相同图标及位图。
3) 选择工具按钮。
4) 在对象观察器中,为工具按钮的ImageIndex属性设置一个整数,该值与需分配给按钮的图像在图像列表中的数字编号相对应。还可以为工具按钮的被禁用状态或鼠标指针置于其上状态分别分配不同的图像。通过将不同的图像
列表分别分配给工具栏的DisabledImages及HotImages属性可完成此任务。
3.设置工具按钮外观及初始状态
表4-4列出了可设置工具按钮外观的一些操作:
点击查看大图注重使用TtoolBar的Flat属性需4.70版或之后的COMCTL32.DLL。为强迫控件在某一之后转至新行,选择需放在行末的工具按钮,并将其Wrap属性设为true。为关掉工具栏自动换行的特性,可将工具栏Wrapable属性设为false。
4.创建成组的工具按钮
为创建工具按钮分组,选择相关的按钮并将它们的Style属性设为tbsCheck;然后将它们的Grouped属性设为true。选择分组中任何按钮时都将使组中其他按钮被弹起,它对提供一组互斥的选择很有帮助。所有相邻且不间断的、其Style属性设为tbsCheck且Grouped属性设为true的工具按钮将成为一个分组。为终止一个工具按钮分组,可用下列任何控件分隔按钮:
· Grouped属性为false的工具按钮。
· Style属性不是tbsCheck的工具按钮。为在工具栏中创建空白或分隔符,可将一工具按钮Style属性设为tbsSeparator或tbsDivider。
· 除工具按钮外的另一控件。
5.答应切换工具按钮
使用AllowAllUp可将一个分组中的工具按钮设为切换按钮:单击一次,按钮被按下;再次单击,按钮弹起。要将一个分组工具按钮设为切换按钮,可将其AllowAllUp属性设为true。与快速按钮相同,将一个分组工具按钮的AllowAllUp属性设为true,会自动地将该分组所有工具按钮的AllowAllUp属性设为相同值。
4.8.3 增加酷栏组件
酷栏(Coolbar)组件,又称rebar,将窗口控件显示在独立地可移动并可改变大小的段。用户可通过拖拽段左边的调整大小把柄(grips)重新定位各段。
要在窗体加入酷栏:
1) 把酷栏组件加入窗体(从组件面板的Win32页)。酷栏自动排列在窗体顶端。
2) 从组件面板选择窗口控件加入栏中。
只有TWinControl派生出的组件才是窗口控件。可以在酷栏中加入图形控件,如标签或快速按钮等,但它们将不能显示在单独的段中。
注重酷栏组件需要4.70版或之后的COMCTL32.DLL。设置酷栏外观
酷栏组件提供一些有用的配置选项。表4-5列出了一些可用于设置工具按钮外观的操作:
点击查看大图为给单独的段分配图像,先选择酷栏,并在对象观察器中双击其Bands属性。然后选择一个段,并设置其ImageIndex属性值。
4.8.4 响应点击
当用户单击控件,如工具栏按钮时,应用程序会产生一个OnClick事件,可编写事件处理程序对其作出反应。OnClick事件是按钮的缺省事件,在设计时通过双击按钮就可产生一个事件处理程序的框架。
将菜单赋给工具按钮
若使用工具按钮(TToolButton)及工具栏(TToolBar),可把菜单与某特定按钮联系起来:
1) 选择工具按钮。
2) 在对象观察器中,给该工具按钮的DropDownMenu属性分配一个弹出式菜单(TPopupMenu)。若该菜单的AutoPopup属性为true,按钮被按下时它会自动出现。
4.8.5 增加隐藏的工具栏
工具栏不必是始终可见的。实际上,有许多可用的工具栏只在用户需要时才显示它们,这种方式经常更加方便。经常创建一种有一些工具栏的窗体,但是隐藏一些或者所有的。
要创建一个隐藏的工具栏:
1) 在窗体加入工具栏、酷栏或面板组件。
2) 将组件的Visible属性设为false。虽然在设计时工具栏依然可见,这使你能修改它,但在运行时它一直是隐藏的,直到应用程序使其
可见。
4.8.6 隐藏和显示工具栏
应用程序可能经常会需要有多个工具栏,但又不想将它们同时放在窗体中而弄乱窗体,或者可以让用户决定是否显示工具栏。和所有组件一样,工具栏能在运行时根据需要显示或隐藏。
为在运行时隐藏或显示工具栏,将它们Visible属性分别设为false或true。通常这么做是为响应特定的用户事件或应用程序操作方式的变化。为此,应为每个工具栏设置一个关闭按钮。当用户单击关闭按钮时,应用程序隐藏相应的工具栏。
还可以提供工具栏的切换。在下例中,可通过主工具栏的按钮切换一绘图笔的工具栏。因为每次单击按下或松开按钮,在OnClick事件处理程序可根据按钮是按下或弹起的状态来显示或隐藏绘图笔的工具栏。