C++ Builder 可视化组件库(VCL)标准组件 二
2008-03-08 21:54:17 来源:WEB开发网核心提示:4.处理列表列表提供给用户一组可选项,有一些组件可显示列表(见表2-5):非可视化组件TStringList和TImageList组件可治理串和图形集合,C++ Builder 可视化组件库(VCL)标准组件 二,请参见2.5.1节可获得关于串列表的更多信息,(1)列表框和复选列表框用户可从列表框(ListBox)和复
4.处理列表
列表提供给用户一组可选项。有一些组件可显示列表(见表2-5):
非可视化组件TStringList和TImageList组件可治理串和图形集合。请参见2.5.1节可获得关于串列表的更多信息。
(1)列表框和复选列表框
用户可从列表框(ListBox)和复选列表框(CheckListBox)显示列表中选择项。
· Items使用TStrings对象给控件输入项值。
· ItemIndex指出列表中哪些项被选中。
· MultiSelect指定用户是否一次能选择多个项。
· Sorted确定是否按字母顺序显示列表。
· Columns列数指定列表控件的列数。
· IntegralHeight指定是否列表框只显示完全放入垂直空间的项。
· ItemHeight指定各项的高度(以像素为单位)。Style属性能使ItemHeight被忽略。
· Style属性决定列表控件如何显示其项。缺省时,项显示为串。通过修改Style属性的值,你能创建属主绘制(owner-draw)列表框,它以图形或以可变高度显示项。有关属主绘制控件的更多信息,请参见5.4节。
(2)组合框
组合框(ComboBox)是编辑框与滚动列表的组合。当用户通过键入或从列表中选择项向控件中输入数据时,Text属性值会改变。
· Style属性选择组合框的类型。
· 使用csDropDown选择带有下拉列表的编辑框。使用csDropDownList可使编辑框变为只读(强迫用户从列表中选择)。设置DropDownCount属性可改变列表框显示的项数。
· 使用CSSimple创建带有不会关闭的固定列表的组合框。应重新调整组合框的大小以确保列表项都能显示。
· 使用csOwnerDrawFixed或者csOwnerDrawVariable来创建属主绘制组合框,它以图形或以可变高度显示项。
(3)树型视图
树型视图(TreeView)以缩排的方式显示项。该控件提供了答应扩展或折叠节点的按钮。可以在项目的文本标号中包含图标,并用不同的图标显示表明节点是打开的还是折叠的。还可以加入图形,如复选框,反映了项目的状态信息。
· Indent设置每个项与其父项之间的水平像素数。
· ShowButtons激活‘+'和‘-'按钮的显示,以指示项是否可以扩展。
· ShowLines激活连接线的显示,以指明层次关系。
· ShowRoot确定是否显示连接根项目的线条。
(4)列表视图
列表视图(ListView)显示多种格式的列表。使用ViewStyle属性来选择列表类型:
· vsIcon和vsSmallIcon将各项显示为带标号的图标。用户可在列表视图窗口中拖动项目。
· vsList将项显示为不能拖动的带标号的图标。
· vsReport在各列中带有信息的连线上显示项。最左边列包含一个小图标和标号,后续各列包含应用程序定义的子项。使用ShowColumnHeaders属性可显示列标题。
(5)日期时间和日历
DateTimePicker组件显示输入日期或时间的列表框,MonthCalendar组件给出日期或日期范围。在设计时或运行时使用这些组件,都必须有版本4.70或以后的COMCTL32.DLL(通常位于Windows\System或者Windows\System32目录)。
5.分组组件
当相关的控件和信息以分组形式给出时,图形界面更轻易使用。C++Builder提供了一些分组组件(见表2-6)
(1)分组框和单选组
分组框(GroupBox)是标准Windows组件,用于排列窗体中的相关控件。最常见的分组控件是单选按钮。将分组框放入窗体后,可从组件面板中选择组件放入分组框。Caption属性包含在运行时标记分组框的文本。
单选组组件(RadioGroup)简化了创建多个单选按钮并使其共同工作的任务。为将单选按钮添加到单选组中,可在对象观察器中编辑Items属性;Items中的每个串都在单选组中生成一个以该串为标题的单选按钮。ItemIndex属性确定当前被选择的单选按钮。通过设置Columns属性决定单列或多列显示单选按钮。若需重新确定按钮占用的空间,可重新调整分组组件大小。
(2)面板
面板组件(Panel)为其他控件提供了一种常规容器。面板可采用对齐窗体的方式,以便在窗体调整大小时保持其相对位置不变。BorderWidth属性确定面板边界的宽度(以像素为单位)。
(3)滚动框
滚动框(ScrollBox)创建窗体中的滚动区域。应用程序经常需要显示更多的内容。有一些控件,如列表框、备注以及窗体本身,都可以自动滚动其中的内容。滚动框提供了额外的灵活方式用以在窗体中定义任意的滚动子区域。与面板和分组框一样,滚动框可包含其他的控件。但是滚动框通常是不可视的。只有当滚动框中的控件超出其可视范围,滚动框才自动显示出滚动条。
(4)标签控制
标签控制组件(TabControl)看上去像是笔记本的分隔页。在对象观察器中编辑Tab属性就能创建标签;Tab中的每个串代表一个标签。标签控制组件是包含一组组件的单个面板。若想在单击标签时改变控件的外观,需要编写OnChange事件处理程序。若想创建多页面对话框,可使用页面控制组件。
(5)页面控制
页面控制组件(PageControl)是页面的集合,适合于创建多页面对话框。右击页面控制组件并选择New Page可创建新页。
(6)标题控件
标题控件(HeaderControl)是列标题的组合,用户可在运行时选择或调整其大小。编辑该控件的Sections属性可添加或修改标题。
6.可视化反馈
有许多为用户提供给用程序状态信息的方法。例如,有些组件(包括TForm)都有能够在运行时修改的Caption属性。也可以创建对话框来显示这些信息。另外,表2-7中的组件对于在运行时提供可视化反馈是非凡有用:
(1)标签和静态文本组件
标签显示文本且通常被放置在其他控件旁边。标准标签组件,如TLabel,是一种非窗口控件,因此它不能接收焦点;若需要带有窗口句柄的标签时,使用TStaticText。标签包含下面的属性:
· Caption确定标签文本串。
· FocusControl将标签链接到窗体中的其他控件。若Caption包含快捷键,FocusControl属性指定的控件会在用户按下该快捷键时获得焦点。
· ShowAccelChar决定标签是否显示带下划线的快捷键字符。若ShowAccelChar为true,则任意一个带有字符&为前缀的字符以带下划线的方式出现,并可激活快捷键。
· Transparent决定在标签下的项(如图形)是否可见。 三层交换技术 交换机与路由器密码恢复 交换机的选购 路由器设置专题 路由故障处理手册 数字化校园网解决方案
(2)状态栏
虽然可以用面板来创建状态栏,但使用状态栏组件更加简单。缺省时,状态栏的Align属性设为alBottom,它会处理位置和尺寸。
通常需要把状态栏分成几个文本区。在对象观察器中编辑,并从面板编辑器中设置各个面板的宽度、排列和文本属性,就可创建若干面板作为文本区。各个面板的Text属性包含在面板中显示的文本。
(3)进度条
当应用程序执行费时的操作时,可使用进度条来显示任务的完成量。进度条显示一条从左至右增长的虚线(如图2-3所示)。
Position属性跟踪虚线的长度。Max和Min确定Position的范围。为使虚线增长,可通过调用StepBy或者StepIt方法增加Position。Step属性决定StepIt使用的增量。
(4)帮助和提示属性
大多数可视化控件可在运行时显示上下文相关的帮助和弹出式提示。HelpContext和HelpFile属性为控件建立帮助的上下文编号和帮助文件。
Hint属性包含了一个文本串,用户将鼠标指针移动到控件或菜单项上方时,就显示文本串。为了激活提示,需将ShowHint设为true;ParentShowHint设为true可使控件的ShowHint属性具有和其父代相同的值。
7.网格
网格以行和列的方式显示信息。假如要编写数据库应用程序,可使用第27章中描述的TDBGrid或TDBCtrlGrid组件。或者,使用标准绘图网格或字符串网格。
(1)绘制网格
绘制网格(TDrawGrid)以表格形式显示任意数据。用OnDrawCell事件处理程序来填充网格单元。
· CellRect方法返回指定单元的屏幕坐标,而MouseToCell方法返回在指定屏幕坐标上的单元的列数和行数。Selection属性指明当前选择单元的边界。
· ToPRow属性确定哪行是网格当前的首行。LeftCol属性确定左边第一个可见列。VisibleColCount和VisibleRowCount给出网格可见行、列数。
· 用ColWidths和RowHeights属性可改变列或行的宽度或高度。GridLineWidth属性设置网格线的宽度。ScrollBar属性给网格添加滚动条。
· 可用FixedCols和FixedRows属性选择固定或非滚动的列或行。用FixedColor属性指定固定或非滚动的列或行的颜色。
· Options、DefaultColWidth和DefaultRowHeight属性也会影响网格的外观和表现。
(2)字符串网格
字符串网格组件是TDrawGrid的后裔,增加了简化显示字符串的非凡功能性。Cells属性列出网格各单元的串;Objects属性列出与各个串关联的对象。通过Cols或Rows属性可访问特定列或行的所有的串及相关的对象。
8.图形显示
表2-8中所示的组件使应用程序易于使用图形。
(1)图片
图片组件(Image)显示图形化的图像,如位图、图标和图元文件。Picture属性决定显示的图形。使
用Center、AutoSize、Stretch及Transparent来设置显示选项。更多信息请参见6.1节。
(2)几何图形
几何图形组件(Shape)显示几何外形。它是非窗口控件,不能接收用户输入。Shape属性决定控件的几何外形。使用Brush属性可改变几何外形的颜色或加入模式(Patten),它包含一个TBrush对象。由TBrush的Color和Style属性决定如何绘制几何外形。
(3)斜角
斜角组件(Bevel)是可凸出或凹进的线条。一些组件,比如TPanel,内置了创建斜角边界的属性。当这样的属性不可用时,使用TBevel来创建带斜角的轮廓线、对话框、框架。
(4)绘图框
绘图框组件(PaintBox)答应应用程序在窗体中绘图。可用OnPaint事件处理程序在绘图框的Canvas
上绘图。绘图框能够防止将图画出框外。更多信息请参见6.1节。
(5)动画控件
动画(Animate)组件是一个窗口,可以无声的显示一段AVI。一段AVI是一系列位图的组合,像一段电影。虽然AVI能有声音,但是动画控件只工作在无声的状态下。并且,所用文件必须是未压缩的AVI文件或使用RLE压缩的AVI文件。下面是动画组件的一些属性:
· ResHandle是包含AVI文件的资源模块的Windows句柄。在运行时设置ResHandle给包含动画资源的模块分配实例句柄或模块句柄。在设置ResHandle后,设置ResID或ResName属性指定模块中哪些资源是需通过动画控件显示的AVI文件。
· AutoSize属性设为true可使动画控件的尺寸适应于AVI的大小。
· StartFrame和StopFrame指定AVI的开始和结束帧。
· 设置CommonAVI来显示Shell32.DLL提供的Windows通用AVI段。
· 通过设置Active属性为true或false指定何时开始和中断动画。通过设置Repetitions属性确定重复播放
的次数。
· Timers属性让你使用计时器显示帧。这对于将动画与其他操作同步很有用,如与音轨同步。
9.Windows通用对话框
组件面板的Dialog页中提供的对话框组件可使你在应用程序中使用标准的Windows对话框,这些对话框为所有的基于Windows的应用程序提供一种常用的、一致的界面,用于治理一些标准操作,如打开、保存、打印文件等。只有当Execute方法被调用时对话框才会打开。Execute方法返回一个布尔值:假如用户选择OK来接受在对话框中所做的任何改变,返回true;若用户没有做或保存任何改变同时选择Cacel关闭对话框,返回false。
使用Windows通用对话框
TOpenDialog是最常用的对话框组件之一。它通常由窗体的主菜单栏下的文件选项的New或Open菜单项激活。
TOpenDialog组件使应用程序可使用Open对话框。其用途主要是让用户指定打开文件。使用Execute方法打开该对话框。
当用户选择对话框中的OK时,用户文件名被存储在TOpenDialog的FileName属性中,你可按照需要的方式处理它。下列代码段可加入与TMainMenu的子项相连的Action属性对应的Action事件处理程序或子项的OnClick事件处理程序中:
这个代码段会显示出对话框,并且若用户按下OK按钮,将把文件名赋给一个名为filename的AnsiString变量。
列表提供给用户一组可选项。有一些组件可显示列表(见表2-5):
非可视化组件TStringList和TImageList组件可治理串和图形集合。请参见2.5.1节可获得关于串列表的更多信息。
(1)列表框和复选列表框
用户可从列表框(ListBox)和复选列表框(CheckListBox)显示列表中选择项。
· Items使用TStrings对象给控件输入项值。
· ItemIndex指出列表中哪些项被选中。
· MultiSelect指定用户是否一次能选择多个项。
· Sorted确定是否按字母顺序显示列表。
· Columns列数指定列表控件的列数。
· IntegralHeight指定是否列表框只显示完全放入垂直空间的项。
· ItemHeight指定各项的高度(以像素为单位)。Style属性能使ItemHeight被忽略。
· Style属性决定列表控件如何显示其项。缺省时,项显示为串。通过修改Style属性的值,你能创建属主绘制(owner-draw)列表框,它以图形或以可变高度显示项。有关属主绘制控件的更多信息,请参见5.4节。
(2)组合框
组合框(ComboBox)是编辑框与滚动列表的组合。当用户通过键入或从列表中选择项向控件中输入数据时,Text属性值会改变。
· Style属性选择组合框的类型。
· 使用csDropDown选择带有下拉列表的编辑框。使用csDropDownList可使编辑框变为只读(强迫用户从列表中选择)。设置DropDownCount属性可改变列表框显示的项数。
· 使用CSSimple创建带有不会关闭的固定列表的组合框。应重新调整组合框的大小以确保列表项都能显示。
· 使用csOwnerDrawFixed或者csOwnerDrawVariable来创建属主绘制组合框,它以图形或以可变高度显示项。
(3)树型视图
树型视图(TreeView)以缩排的方式显示项。该控件提供了答应扩展或折叠节点的按钮。可以在项目的文本标号中包含图标,并用不同的图标显示表明节点是打开的还是折叠的。还可以加入图形,如复选框,反映了项目的状态信息。
· Indent设置每个项与其父项之间的水平像素数。
· ShowButtons激活‘+'和‘-'按钮的显示,以指示项是否可以扩展。
· ShowLines激活连接线的显示,以指明层次关系。
· ShowRoot确定是否显示连接根项目的线条。
(4)列表视图
列表视图(ListView)显示多种格式的列表。使用ViewStyle属性来选择列表类型:
· vsIcon和vsSmallIcon将各项显示为带标号的图标。用户可在列表视图窗口中拖动项目。
· vsList将项显示为不能拖动的带标号的图标。
· vsReport在各列中带有信息的连线上显示项。最左边列包含一个小图标和标号,后续各列包含应用程序定义的子项。使用ShowColumnHeaders属性可显示列标题。
(5)日期时间和日历
DateTimePicker组件显示输入日期或时间的列表框,MonthCalendar组件给出日期或日期范围。在设计时或运行时使用这些组件,都必须有版本4.70或以后的COMCTL32.DLL(通常位于Windows\System或者Windows\System32目录)。
5.分组组件
当相关的控件和信息以分组形式给出时,图形界面更轻易使用。C++Builder提供了一些分组组件(见表2-6)
(1)分组框和单选组
分组框(GroupBox)是标准Windows组件,用于排列窗体中的相关控件。最常见的分组控件是单选按钮。将分组框放入窗体后,可从组件面板中选择组件放入分组框。Caption属性包含在运行时标记分组框的文本。
单选组组件(RadioGroup)简化了创建多个单选按钮并使其共同工作的任务。为将单选按钮添加到单选组中,可在对象观察器中编辑Items属性;Items中的每个串都在单选组中生成一个以该串为标题的单选按钮。ItemIndex属性确定当前被选择的单选按钮。通过设置Columns属性决定单列或多列显示单选按钮。若需重新确定按钮占用的空间,可重新调整分组组件大小。
(2)面板
面板组件(Panel)为其他控件提供了一种常规容器。面板可采用对齐窗体的方式,以便在窗体调整大小时保持其相对位置不变。BorderWidth属性确定面板边界的宽度(以像素为单位)。
(3)滚动框
滚动框(ScrollBox)创建窗体中的滚动区域。应用程序经常需要显示更多的内容。有一些控件,如列表框、备注以及窗体本身,都可以自动滚动其中的内容。滚动框提供了额外的灵活方式用以在窗体中定义任意的滚动子区域。与面板和分组框一样,滚动框可包含其他的控件。但是滚动框通常是不可视的。只有当滚动框中的控件超出其可视范围,滚动框才自动显示出滚动条。
(4)标签控制
标签控制组件(TabControl)看上去像是笔记本的分隔页。在对象观察器中编辑Tab属性就能创建标签;Tab中的每个串代表一个标签。标签控制组件是包含一组组件的单个面板。若想在单击标签时改变控件的外观,需要编写OnChange事件处理程序。若想创建多页面对话框,可使用页面控制组件。
(5)页面控制
页面控制组件(PageControl)是页面的集合,适合于创建多页面对话框。右击页面控制组件并选择New Page可创建新页。
(6)标题控件
标题控件(HeaderControl)是列标题的组合,用户可在运行时选择或调整其大小。编辑该控件的Sections属性可添加或修改标题。
6.可视化反馈
有许多为用户提供给用程序状态信息的方法。例如,有些组件(包括TForm)都有能够在运行时修改的Caption属性。也可以创建对话框来显示这些信息。另外,表2-7中的组件对于在运行时提供可视化反馈是非凡有用:
(1)标签和静态文本组件
标签显示文本且通常被放置在其他控件旁边。标准标签组件,如TLabel,是一种非窗口控件,因此它不能接收焦点;若需要带有窗口句柄的标签时,使用TStaticText。标签包含下面的属性:
· Caption确定标签文本串。
· FocusControl将标签链接到窗体中的其他控件。若Caption包含快捷键,FocusControl属性指定的控件会在用户按下该快捷键时获得焦点。
· ShowAccelChar决定标签是否显示带下划线的快捷键字符。若ShowAccelChar为true,则任意一个带有字符&为前缀的字符以带下划线的方式出现,并可激活快捷键。
· Transparent决定在标签下的项(如图形)是否可见。 三层交换技术 交换机与路由器密码恢复 交换机的选购 路由器设置专题 路由故障处理手册 数字化校园网解决方案
(2)状态栏
虽然可以用面板来创建状态栏,但使用状态栏组件更加简单。缺省时,状态栏的Align属性设为alBottom,它会处理位置和尺寸。
通常需要把状态栏分成几个文本区。在对象观察器中编辑,并从面板编辑器中设置各个面板的宽度、排列和文本属性,就可创建若干面板作为文本区。各个面板的Text属性包含在面板中显示的文本。
(3)进度条
当应用程序执行费时的操作时,可使用进度条来显示任务的完成量。进度条显示一条从左至右增长的虚线(如图2-3所示)。
Position属性跟踪虚线的长度。Max和Min确定Position的范围。为使虚线增长,可通过调用StepBy或者StepIt方法增加Position。Step属性决定StepIt使用的增量。
(4)帮助和提示属性
大多数可视化控件可在运行时显示上下文相关的帮助和弹出式提示。HelpContext和HelpFile属性为控件建立帮助的上下文编号和帮助文件。
Hint属性包含了一个文本串,用户将鼠标指针移动到控件或菜单项上方时,就显示文本串。为了激活提示,需将ShowHint设为true;ParentShowHint设为true可使控件的ShowHint属性具有和其父代相同的值。
7.网格
网格以行和列的方式显示信息。假如要编写数据库应用程序,可使用第27章中描述的TDBGrid或TDBCtrlGrid组件。或者,使用标准绘图网格或字符串网格。
(1)绘制网格
绘制网格(TDrawGrid)以表格形式显示任意数据。用OnDrawCell事件处理程序来填充网格单元。
· CellRect方法返回指定单元的屏幕坐标,而MouseToCell方法返回在指定屏幕坐标上的单元的列数和行数。Selection属性指明当前选择单元的边界。
· ToPRow属性确定哪行是网格当前的首行。LeftCol属性确定左边第一个可见列。VisibleColCount和VisibleRowCount给出网格可见行、列数。
· 用ColWidths和RowHeights属性可改变列或行的宽度或高度。GridLineWidth属性设置网格线的宽度。ScrollBar属性给网格添加滚动条。
· 可用FixedCols和FixedRows属性选择固定或非滚动的列或行。用FixedColor属性指定固定或非滚动的列或行的颜色。
· Options、DefaultColWidth和DefaultRowHeight属性也会影响网格的外观和表现。
(2)字符串网格
字符串网格组件是TDrawGrid的后裔,增加了简化显示字符串的非凡功能性。Cells属性列出网格各单元的串;Objects属性列出与各个串关联的对象。通过Cols或Rows属性可访问特定列或行的所有的串及相关的对象。
8.图形显示
表2-8中所示的组件使应用程序易于使用图形。
(1)图片
图片组件(Image)显示图形化的图像,如位图、图标和图元文件。Picture属性决定显示的图形。使
用Center、AutoSize、Stretch及Transparent来设置显示选项。更多信息请参见6.1节。
(2)几何图形
几何图形组件(Shape)显示几何外形。它是非窗口控件,不能接收用户输入。Shape属性决定控件的几何外形。使用Brush属性可改变几何外形的颜色或加入模式(Patten),它包含一个TBrush对象。由TBrush的Color和Style属性决定如何绘制几何外形。
(3)斜角
斜角组件(Bevel)是可凸出或凹进的线条。一些组件,比如TPanel,内置了创建斜角边界的属性。当这样的属性不可用时,使用TBevel来创建带斜角的轮廓线、对话框、框架。
(4)绘图框
绘图框组件(PaintBox)答应应用程序在窗体中绘图。可用OnPaint事件处理程序在绘图框的Canvas
上绘图。绘图框能够防止将图画出框外。更多信息请参见6.1节。
(5)动画控件
动画(Animate)组件是一个窗口,可以无声的显示一段AVI。一段AVI是一系列位图的组合,像一段电影。虽然AVI能有声音,但是动画控件只工作在无声的状态下。并且,所用文件必须是未压缩的AVI文件或使用RLE压缩的AVI文件。下面是动画组件的一些属性:
· ResHandle是包含AVI文件的资源模块的Windows句柄。在运行时设置ResHandle给包含动画资源的模块分配实例句柄或模块句柄。在设置ResHandle后,设置ResID或ResName属性指定模块中哪些资源是需通过动画控件显示的AVI文件。
· AutoSize属性设为true可使动画控件的尺寸适应于AVI的大小。
· StartFrame和StopFrame指定AVI的开始和结束帧。
· 设置CommonAVI来显示Shell32.DLL提供的Windows通用AVI段。
· 通过设置Active属性为true或false指定何时开始和中断动画。通过设置Repetitions属性确定重复播放
的次数。
· Timers属性让你使用计时器显示帧。这对于将动画与其他操作同步很有用,如与音轨同步。
9.Windows通用对话框
组件面板的Dialog页中提供的对话框组件可使你在应用程序中使用标准的Windows对话框,这些对话框为所有的基于Windows的应用程序提供一种常用的、一致的界面,用于治理一些标准操作,如打开、保存、打印文件等。只有当Execute方法被调用时对话框才会打开。Execute方法返回一个布尔值:假如用户选择OK来接受在对话框中所做的任何改变,返回true;若用户没有做或保存任何改变同时选择Cacel关闭对话框,返回false。
使用Windows通用对话框
TOpenDialog是最常用的对话框组件之一。它通常由窗体的主菜单栏下的文件选项的New或Open菜单项激活。
TOpenDialog组件使应用程序可使用Open对话框。其用途主要是让用户指定打开文件。使用Execute方法打开该对话框。
当用户选择对话框中的OK时,用户文件名被存储在TOpenDialog的FileName属性中,你可按照需要的方式处理它。下列代码段可加入与TMainMenu的子项相连的Action属性对应的Action事件处理程序或子项的OnClick事件处理程序中:
这个代码段会显示出对话框,并且若用户按下OK按钮,将把文件名赋给一个名为filename的AnsiString变量。
更多精彩
赞助商链接