分享
 
 
 

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

王朝vc·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有