首页 理论教育测量平差程序设计:对象概念

测量平差程序设计:对象概念

【摘要】:图1.7属性栏②通过程序代码赋值。图1.8访问Label1.Caption属性运行结果访问对象的方法。方法是VB为对象预设的、用户不能更改的事件过程,不同的对象具有不同的方法。前者由滚动条的Value值变化激发,后者在滚动框被拖动时引发。

1.对象

将数据和处理数据的过程打包在一起而生成的新型数据类型称之为对象。对象中的数据称之为“属性”,过程称之为“方法”。所有的窗体和控件都是对象。访问对象的属性和方法是在对象和属性、方法之间加一个“.”号。

2.对象的操作

(1)访问对象属性。

访问对象的属性有两种方法,以标签控件Label1为例:

①在属性栏里面直接定义。

设置标签Label1的Caption属性为Visual Basic(图1.7)。

图1.7 属性栏

②通过程序代码赋值

在窗体加载事件Form_Load中写下代码:

Label1.Caption="Visual Basic"

运行结果见图1.8。

图1.8 访问Label1.Caption属性运行结果

(2)访问对象的方法。

方法是VB为对象预设的、用户不能更改的事件过程,不同的对象具有不同的方法。访问对象方法的语法结构为:

对象名.方法名([参数列])

例如:在窗口Form1上显示字符“Hello World”的语句为:

Form1.Print "Hello World"

其中,对象为Form1,方法为Print,参数为“Hello World”。

3.对象型变量

对象型变量是用于保存对象的变量,所谓保存对象,实际上是保存对象的内存地址(句柄)。和使用普通变量类似,对象型变量通过声明和赋值,就可以像普通变量一样操作。例如:

也可以清除对象型变量:

Set obj = Nothing

简单地说,对象型变量就是被声明成具体对象类型,并可以赋值于已定义对象(控件)的特殊变量。

4.VB常用控件

控件是可视或具有图标的对象,如Picture、Command、TextBox等,VB将常用的控件置于工具箱中,方便用户引用。常用控件主要有:

文本框TextBox:是窗口中进行输入、输出操作的重要控件,文本框本身支持一般的文字编辑功能,这些功能已由VB封装在文本框对象中了。

方法:Move。

事件:Click、DblClick、Change事件。注意在Change事件(文本框中文本内容发生改变)中,不可有改变自身Text属性值的语句。

②标签Label:主要用于对没有标题的控件进行说明,显示内容(caption属性值)不可直接编辑,但可通过程序代码修改。

方法:Move。

事件:Click、DblClick、Change事件。标签显示内容发生改变时触发Change事件。

③图像控件Image:用于在窗体上显示保存在图形文件中的图像。

Picture属性:决定图像来源,可直接设定,也可在程序运行中用内部函数LoadPicture赋值,例如:

image.picture=loadpicture("C:\windows\setup.bmp")

设计时赋予Picture属性的图形文件会被复制到二进制窗体文件(.frx)中,运行时不依赖原文件。

方法:Move。

事件:Click、DblClick事件。

④图片框控件PictureBox:与图像控件Image功能基本相同,在平差示例程序中,被用来容纳快捷按钮控件和绘制控制网图。

方法:Move。

事件:Change事件。

⑤滚动条控件(HscrollBar/VscrollBar):用于上下、左右的滚动文字或图形。

方法:Move。

事件:Change、Scroll事件。前者由滚动条的Value值变化激发,后者在滚动框被拖动时引发。(www.chuimin.cn)

滚动条有几个特殊的属性:

Value属性:当滑块挪动后停在某一位置时,就改变了滚动条的Value属性。

Max和Min属性:用来设置滚动条的最大值和最小值,譬如把Max设为100,把Min设为0时,滚动条的Value就在0到100之间移动。当Max和Min倒置时,滚动条的方向也会相反,即当Max < Min时,原来Value增加的方向就会变成相反的方向。Max和Min也可设为负值。

SmallChange和LargeChange属性:当鼠标在滚动条两头的箭头上单击时,就会把滚动条向相应的方向挪动一点,这时用到的就是SmallChange属性。当把SmallChange属性设为1时,每点一下,滚动条的Value就改变1;当鼠标在滚动条上点击时,用到的就是LargeChange属性,当设为10时,每点击一下滚动条,Value就改变10。

框架控件Frame:是左上角有标题的方框,目的是对窗体上的控件进行视觉上的分组,使窗体上的内容更有条理。

方法:Move。

事件:Click、DblClick事件。

复选框控件CheckBox:提供选择项的控件,一个窗体可有多个复选框,并按功能进行分组,一组中可选中多个,也可一个不选。Value属性值决定复选框的选中状态。

方法:Move。

事件:Click事件。

⑧单选框控件OptionBox:单选框控件与复选框的差别是,只能且必须有一个选项被选中。直接放在窗体上的所有单选框,无论其相互位置如何都被认为是一组。要在一个窗体上放置多个单选框,可使用容器控件——图片框或框架,其中框架较为常用。

方法:Move。

事件:Click、DblClick事件。

⑨列表框控件ListBox:同复选框、单选框一样,列表框也是提供选项的控件。

方法:

· AddItem方法:往列表框中添加新条目。语法:

列表框对象名.AddItem字符表达式[,序号]

· RemoveItem方法:从列表框中指定序号位置删除条目。语法:

列表框对象名.RemoveItem序号

· Clear方法:清除列表框所有条目。语法:

列表框对象名.Clear

· Move方法:移动列表框或改变其大小。语法:与其他控件相同。

事件:

· Click、DblClick事件。

· Scroll事件。

· ItemCheck事件:ListBox空间的Style属性设置为1时,若控件中一个条目复选框被选定或消除,则该事件发生。事件过程语法为:

Private Sub 列表框对象名.ItemCheck(Item As Integer)

⑩组合框控件ComboBox:组合框可看作文本框和列表框的组合体,具有两者的事件和方法。

组合框不支持多选,故没有MultiSelect,Selected,SelCount属性,也无ItemCheck事件。

5.控件数组

控件数组是一组具有相同名称和类型的控件,它们的事件名称也相同,即同类的控件若具有相同的Name属性,就称为控件数组。创建控件数组可以采用对一个控件做复制粘贴操作实现,也可以将已引用同类型控件名改为同一Name属性来完成。另外在菜单编辑器中,将某一菜单下的下拉子菜单名设置为同样的名称,这些子菜单也构成控件数组。

VB还允许在程序运行状态下,通过程序语句创建控件数组,但是只支持在已有控件的基础上,新增控件数组成员。程序语句为:

通过命令语句加载控件数组新成员时,新成员大多数属性值将由现有数组成员中Index属性值最小的控件复制。但是VB不会将Visible、Index等属性值复制到新控件成员,因此为了使新增控件成员可视,必须通过命令将属性值Visible设置为True。

Onload命令只能删除Load语句创建的控件,不能删除设计时在对象窗口创建的控件。

控件数组可以共享同一个事件过程,使用控件数组并以控件的Index属性值为选择条件,结合选择执行结构语句Select Case,可将本需要封装在不同命令按钮或子菜单点击事件中的程序代码组合在一起,显著地简化程序结构。

【例1】 设在一个窗体中有若干个Command按钮控件组成的数组,其Index属性值从1开始编号。现要让用户单击某按钮时,弹出一个窗口显示其Index属性值的平方。若不使用控件数组,则要设Command 1,Command 2,…,Command n,n个Click事件,并重复设计程序代码因而非常烦琐。而采用控件数组,则只需采用下面一个事件即可完成。

控件数组的另一个功能是可使用Index属性循环访问控件组。例如,若要清除控件TextBox中各成员的text属性值,可将Index属性作为循环变量,在一个循环内访问控件数组全部成员。

控件数组中的成员可位于不同容器上,例如,两个不同Form控件上包含的TextBox控件,却是同一控件数组的元素。

【例2】 使用控件数组,设计一个能进行加、减、乘、除运算的运算器程序(程序界面见图1.9)。

图1.9 计算器程序界面