书城计算机网络Delphi程序设计教程
36209800000017

第17章 常用组件(2)

广义上的按钮(Button)包括普通按钮、位图按钮、加速按钮。

如不加说明,通常讲按钮是指普通按钮,也称命令按钮,是Windows应用程序中最常用的组件之一,最常用的是单击按钮触发一个事件,控制程序完成某一处理过程。

按钮位于组件模板的【Standard】选项卡上,其图标为。

6.5.1按钮的主要属性

1.Caption属性

Caption属性指定按钮上显示的文字。该属性的默认值为按钮的默认名字,如Button1。

2.Cancel属性

Cancel属性决定按钮是否为取消按钮。该属性为布尔型属性,若属性值为True,则按钮为取消按钮,即无论何时按下键盘上的Esc键,都会触发按钮的OnClick事件;若有多个取消按钮时,则触发TabOrder属性值最小的按钮的OnClick事件。其默认值为False。

3.Default属性

Default属性决定按钮是否为确认按钮。该属性为布尔型属性,若属性值为True,则为确认按钮,即无论何时按下键盘上的Enter键,都会触发按钮的OnClick事件;若有多个确认按钮时,则触发TabOrder属性值最小的按钮的OnClick事件。其默认值为False。

4.Hint属性

Hint属性指定按钮的功能提示文本。功能提示文本是指当鼠标在该组件上停留时,组件下显示的功能提示信息。该属性为直接输入型属性。其默认值为空。

5.ShowHint属性

ShowHint属性决定按钮是否显示功能提示。该属性为布尔型属性,若属性值为True时,才会显示Hint属性指定的功能提示文本。其默认值为False。

6.5.2按钮的主要事件

OnClick事件:单击按钮时触发该事件。这是按钮用得最多的事件。

6.6单选按钮

单选按钮(RadioButton)位于组件模板的【Standard】选项卡上,其图标为。

单选按钮是在一组互相排斥的单选按钮中只能选择一个作为被选中的对象,通常和成组框一起使用,组成一个单选按钮组,用来对程序运行设置不同的条件。

单选按钮有以下几种属性。

1.Caption属性

把一个单选按钮组件放到窗体上,显示在窗体上的不仅是一个如图标所示的圆点,在圆点的右边还有一个以单选按钮默认名字(如RadioButton1)为内容的标题。Caption属性指定单选按钮标题的内容。

2.Checked属性

Checked属性表明单选按钮是否被选中。该属性为布尔型属性,当单选按钮被选中时,其该属性值为True,否则为False。其默认值为False。

3.Enabled属性

Enabled属性决定单选按钮是否可用。该属性为布尔型属性,若属性值为True时,则单选按钮可以使用;否则,单选按钮为灰色,不能使用。其默认值为True。

6.7复选框

复选框(CheckBox),也称复选按钮,位于组件模板的【Standard】选项卡上,其图标为。

同单选按钮类似,通常复选框也是成组使用,也同成组框一起使用;但与单选按钮不同的是,在一组复选框中允许同时选择其中的几个。

复选框有以下几种属性。

1.AllowGrayed属性

AllowGrayed属性决定复选框是2种状态还是3种状态。该属性为布尔型属性,若属性值为True,则复选框为3种状态,即选中、未选和不可用;若为False,则复选框只有2种状态,即选中和未选。其默认值为False。

2.Caption属性

Caption属性指定复选框标题的内容。

3.Checked属性

Checked属性决定复选框是否被选中。该属性为布尔型属性,当复选框被选中时,其该属性值为True,否则为False。其默认值为False。

4.State属性

State属性表明复选框的状态。该属性为枚举型属性,有3种取值:

cbChecked复选框被选中

cbGrayed复选框不可用

cbUnchecked复选框未被选中

只有当复选框的AllowGrayed属性值为True时,复选框才会有cbGrayed状态。

其默认值为cbUnchecked。

6.8成组框

成组框(GroupBox)是一个带标题的容器组件,在窗口设计中,可以把一组功能类似的组件(如上面讲到的单选按钮和复选框)或一组相关的组件放在一个成组框中,使窗口显得更有条理、更清晰,如图6-8所示。

成组框位于组件模板的【Standard】选项卡上,其图标为。

成组框的主要属性是Caption,该属性指定成组框的标题的内容,如图6-8中成组框的标题为“排序方法”。

6.9单选成组框

如上所说,单选按钮通常都是同成组框一起使用的。而如果成组框中只有单选按钮,可以使用Delphi提供的另一种更方便的组件,即单选成组框(RadioGroup)。

单选成组框与成组框有两点区别:一是单选成组框中只能有单选按钮,而不像成组框中可以放置其他的组件;二是单选成组框中的单选按钮,也不必像成组框中那样一个一个地放置,而是通过设置它的Items属性实现的,这就为单选按钮组的使用提供了方便。

单选成组框位于组件模板的【Standard】选项卡上,其图标为。

单选成组框有以下几种属性。

1.Caption属性

单选成组框同成组框类似,也有一个标题。Caption属性指定标题的内容。

2.Columns属性

Columns属性决定单选成组框中单选按钮的列数。该属性为直接输入型,取值范围为1~16,其默认值为1。

3.ItemIndex属性

因为单选成组框中的单选按钮不是由一个一个单选按钮和成组框组合而成的,因此它们没有Checked属性,它们被选中与否,要由单选成组框的ItemIndex属性决定。

ItemIndex属性指示当前单选成组框中被选中的单选按钮的序号。单选成组框中单选按钮的序号从0开始。其默认值为?1,表示其中的所有单选按钮均未被选中。

4.Items属性

Items属性决定单选成组框中单选按钮的个数及其标题的内容。该属性为编辑型属性。

通过对话框编辑单选成组框单选按钮的方法如下。

(1)在窗体中放置单选成组框,如图6-9所示,激活单选成组框,在对象检查器中找Items属性项。

(2)单击Items属性值栏右端的【…】按钮,打开【StringListEditor】对话框,如图6-10所示。

(3)在对话框的编辑窗口中输入想建立的单选按钮,每一行是一个单选按钮,每行的文字是这个单选按钮的标题,如图6-11所示。

(4)编辑完成后,单击【OK】按钮,关闭对话框,窗体显示设置完成的单选成组框,如从外观看,图6-12同图6-8类似。但图6-12是用单选成组框实现的,而图6-8是用两个单选按钮和一个成组框组合实现的。

6.10列表框

列表框(ListBox)是Windows应用程序中重要的输入手段。它内含若干个选项,用户可在其中选择一个或几个选项,程序会根据用户的选择进行相应的处理。显示在窗体中的一个列表框如图6-13所示。

从外观看,列表框同Memo类似,但两者的作用不同。Memo也可以输入多行文本,但它是程序运行时直接在Memo框中输入。而列表框作为输入,是预先通过其Items属性将要输入的选项设置好,然后在程序运行时从列表框中选择其中的选项作为输入。

列表框位于组件模板的【Standard】选项卡上,其图标为。

6.10.1列表框的属性

1.Columns属性

Columns属性决定列表框中选项的放置方式。该属性为直接输入型属性,当为0时,选项以单列方式放置,列表框宽度固定,若这时选项的个数超过列表框所能容纳的数量时,列表框自动添加垂直滚动条;当为非0整数时,选项以多列方式放置,列表框高度固定,其可视范围内选项的列数等于该属性值,若这时选项的个数超过列表框所能容纳的数量时,列表框自动添加水平滚动条。其默认值为0。

2.Items属性

Items属性指定列表框中列出的选项。该属性为编辑型属性。

通过对话框编辑列表框选项的方法和单选成组框完全一样,每行是一个选项,只是这里每行的文字就是每个选项的内容。

可以用Items[n]来表示列表框中的选项,方括号中的n为选项的序号,从0开始。

3.ItemIndex属性

ItemIndex属性指明列表框中当前被选中的选项的序号。该属性为只读属性。

4.MultiSelect属性

MultiSelect属性决定用户是否可以同时选择列表框中的多个选项。该属性为布尔型属性,若属性值为False,则一次只能选择一项;若为True,则可以同时选择多项。其默认值为False。

5.SelCount属性

SelCount属性指明列表框中当前被选中的选项的个数。该属性为只读属性。若列表框的MultiSelect属性值为False,则SelCount属性值为?1。

6.Selected属性

Selected属性指明列表框中某一选项是否被选中。选项用Selected[n]的形式指定,方括号中的n为选项的序号。该属性为布尔型属性,若属性值为True,则表示某选项被选中。

7.Sorted属性

Sorted属性决定列表框中的选项是否按ASCII码的顺序排列。该属性为布尔型属性,若属性值为True,则排序;否则,不排序。

6.10.2列表框的方法

列表框中的选项,也可以通过列表框的方法在程序中动态地增加、插入、删除和清除。

1.Add方法

Add方法用来在列表框的最后增加一个新的选项。

如ListBox1.Items.Add(‘黑色’);圆括号内用单引号括起来的字符串为要增加的选项。

2.Insert方法

Insert方法用来在列表框的指定位置插入一个新的选项。

如ListBox1.Items.Insert(2,‘白色’);在第3个(序号从0排起,序号为2,实际是第3个选项)选项的前面插入一个新的选项“白色”。

3.Delete方法

Delete方法将列表框中指定选项删除。

如ListBox1.Items.Delete(2);将ListBox1的第3个选项删除掉。

4.Clear方法

Clear方法清除列表框中的所有选项。

6.11组合框

组合框(ComboBox)也是Windows应用程序中重要的输入手段。可以将组合框看成是列表框与编辑框的组合。组合框在窗口中的显示如图6-14所示,左边为未展开时的组合框,与编辑框类似;单击右端的下拉箭头,展开下拉列表,显示为右边样式。组合框比列表框更方便好用,第一,未展开时,它比列表框占用窗口面积小;第二,它不仅可以像列表框那样从下拉列表中选择选项,而且可以像编辑框那样直接向框中输入数据。

组合框位于组件模板的【Standard】选项卡上,其图标为。

组合框有以下几种属性。

组合框兼有列表框和编辑框的属性,也有一些特殊的属性。

1.DropDownCount属性

DropDownCount属性决定组合框下拉列表的行数。该属性为直接输入型属性,其默认值为8。若实际选项数超过设定的属性值,则自动添加垂直滚动条。

2.Style属性

Style属性决定组合框的样式。该属性为枚举型属性,有5种取值,其属性值及其含义如用户可以根据自己的需要选择合适的样式。

由于Delphi的组件很多,不可能一一介绍,这里只能介绍一些基本的常用组件的属性、事件和方法,还有一些重要的常用组件放在后面有关章节介绍,更多的组件要靠读者自己在今后的编程实践中学习和掌握。

习题6

1.标签组件的作用是什么?它的Caption属性的作用是什么?

2.编辑框、存储框有什么用途?它们有什么区别?说明它们用于输入和输出时的语句格式。

3.说明按钮、单选按钮、复选框的作用。

4.列表框和组合框如何设置其Items属性?它们和用于输入的编辑框、存储框有什么异同?