龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

C++ Builder 可视化组件库(VCL)标准组件 二

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
4.处理列表 列表提供给用户一组可选项。有一些组件可显示列表(见表2-5): 非可视化组件TStringList和TImageList组件可治理串和图形集合。请参见2.5.1节可获得关于串列表的更多信息。

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(通常位于WindowsSystem或者WindowsSystem32目录)。

   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变量。

  

  

精彩图集

赞助商链接