第十章用户定义类型与枚举类型详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
第十章 用户定义类型与枚举类型
一、用户定义类型
1、建立用户定义类型
Type 语句只能在模块级使用。使用 Type 语句声明了一个用户自定义类型后,就 可以在该声明范围内的任何位置声明该类型的变量。

在标准模块中,用户自定义类型按缺省设置是公用的。可以使用Private关键字 来改变其可见性。而在类模块中,用户自定义类型只能是私有的,且使用 Public 关键字也不能改变其可见性。
例10-3 建立含40位学生信息的记录数组。 一、用户定义类型
Private Type Studentrec Stunum As String * 10 Names As String * 8 Sex As String * 2 Avg As Single End Type Private Sub Command1_Click() Dim Stu(1 To 50) As Studentrec Stu(32).Stunum = "20010001" Stu(32).Names = "王 平" Stu(32).Sex = "女" Stu(32).Avg = 88 Text1(0).Text = Stu(32).Stunum Text1(1).Text = Stu(32).Names Text1(2).Text = Stu(32).Sex Text1(3).Text = Stu(32).Avg End Sub

遵循标准的变量命 名约定
Public|Private:可选的。用于声明可在工程的所有模块的任何过程中使用的用户 定义类型|只能在包含该声明的模块中使用的用户自定义的类型。 用户类型名:必需的。用户自定义类型的名称。 注:不能为数组 字段名:必需的。用户自定义类型的元素名称。 数据类型名 : 必需的。元素的数据类型;可以是任何基本数据类型、其它的用户 自定义的类型或对象类型。 注:只能是定长的字 符串

在 Type...End Type 块中不允许使用行号和行标签(标号)。
用户自定义类型经常用来表示数据记录,记录一般由多个不同数据类型的元素组 成。
4
第十章 用户定义类型与枚举类型
一、用户定义类型
1、建立用户定义类型

Type st xh as string*7 xm as string* 8 xb as string* 2 pjf as single End Type
Public|Private:可选的。用于声明可在工程的所有模块的任何过程中使用的 用户定义类型|只能在包含该声明的模块中使用的用户自定义的类型。

类型名称: 所定义的Enum类型名称
成员名: 所定义的Enum类型元素名称
13
第十章 用户定义类型与枚举类型
二、枚举类型
1、定义枚举类型

枚举类型中的常数值
21
第十章 用户定义类型与枚举类型
Private Sub HScroll1_Change(Index As Integer) Picture1.BackColor = RGB(HScroll1(0).Value, HScroll1(1).Value, HScroll1(2).Value) r = LTrim(Str(HScroll1(0).Value)) g = LTrim(Str(HScroll1(1).Value)) b = LTrim(Str(HScroll1(2).Value)) Text1.Text = "RGB(" & r & "," & g & "," & b & ")" End Sub

Dim stu1 As st
Dim 数组名(维数及下标范围) As 用户定义类型名 Dim stud(1 To 10) As st
6
第十章 用户定义类型与枚举类型
一、用户定义类型
2、建立和使用用户定义类型的变量

建立用户定义类型的变量 过程/模块 过程 标准模块 窗体模块

创建用户定义类型 不适用 私有(Private)或公用(Public) 仅私有
15
第十章 用户定义类型与枚举类型
Private Sub Command1_Click() 二、枚举类型
Dim Myday As Workdays ' 定义Myday为枚举类型Workdays Text1.SetFocus 1、定义枚举类型 Myday = Val(Text1.Text) If Myday = 0 Or Myday = 6 Then ' 星期日或星期六 Label3.Caption = "休息吧!非工作日!" Else Label3.Caption = "工作日!请咬紧牙关,努力工作!" End If End Sub
例 10-2
9
第十章 用户定义类型与枚举类型
一、用户定义类型
2、建立和使用用户定义类型的变量

用户定义类型数组 用户定义数据类型常称为记录类型,用户定义数据类型的变量称为记录变量, 数组则称为记录数组,引用记录数组中某个元素的字段格式:

记录数组名(索引号).字段
10
第十章 用户定义类型与枚举类型

浮点数转为最接近 的整数
可选项: 默认第一个常数项初始化为0,之后依次加1
用赋值语句给枚举常量赋值,可为任何长整数
可使用另一个枚举常量为枚举常量赋值,应在常数名前加枚举名
14
第十章 用户定义类型与枚举类型
例10-4利用枚举类型编写程序,要求输入一 二、枚举类型
1、定义枚举类型
个数字表示星期,判断输出是否为工作日。 ' 标准模块中 Public Enum Workdays Sunday Monday Tuesday Wednesday Thursday Friday Saturday Invalid = -1 End Enum
Private Sub HScroll1_scroll(Index As Integer) Picture1.BackColor = RGB(HScroll1(0).Value, HScroll1(1).Value, HScroll1(2).Value) r = LTrim(Str(HScroll1(0).Value)) g = LTrim(Str(HScroll1(1).Value)) b = LTrim(Str(HScroll1(2).Value)) Text1.Text = "RGB(" & r & "," & g & "," & b & ")" End Sub

Scroll 事件与 Change 事件的区别在于 : 当滚动条控件滚动时 Scroll 事件一直发生, 而Change事件只是在滚动结束之后才发生一次。

20
第十章 用户定义类型与枚举类型
例10-6 滚动条应用示例。 三、滚动条控件
Private Sub Form_Load() Picture1.BackColor = RGB(255, 255, 255) Text1.Text = "RGB(255,255,255)" Label1.BackColor = RGB(255, 0, 0) Label2.BackColor = RGB(0, 255, 0) Label3.BackColor = RGB(0, 0, 255) For i = 0 To 2 HScroll1(i).Max = 255 HScroll1(i).Min = 0 Next i End Sub

19
第十章 用户定义类型与枚举类型
三、滚动条控件
3、滚动条控件的常用事件
Change事件: 在程序运行过程中,每当滚动条的Value属性发生变化时发生。单 击滚动条两端的箭头或空白处将、沿着滚动条拖动滑块动作结束时引发 Change事 件。

Scroll事件: 跟踪活动滑块的动态变化,拖动滑块时会触发Scroll事件。单击滚动 条两端的箭头或单击滑杆不会触发此事件。
16
第十章 用户定义类型与枚举类型
三、滚动条控件
无论何时,只要应用程序或控件所包含的信息超过当前窗口 ( 或者在 ScrollBars 属性被设置成 True时的文本框和 MDI 窗体 ) 所能显示的信息, 滚动条就会自动出现。

滚动条(ScrollBar)通常用来附在窗体上协助观察数据或确定位置,也可 用来作为数据输入的工具。

使用用户定义类型变量

引用用户定义类型变量中字段的格式: 用户定义类型变量名.字段名
8
第十章 用户定义类型与枚举类型
例10-2 利用用户定义类型变量对各项赋值 一、用户定义类型
Private Type Studentrec Stunum As String * 10 Names As String * 8 Sex As String * 2 Avg As Single End Type Private Sub Command1_Click() Dim Stu As Studentrec Stu.Stunum = "20010001" Stu.Names = "王 平" Stu.Sex = "女" Stu.Avg = 88 Text1(0).Text = Stu.Stunum Text1(1).Text = Stu.Names Text1(2).Text = Stu.Sex Text1(3).Text = Stu.Avg End Sub

17
第十章 用户定义类型与枚举类型
三、滚动条控件
1、滚动条控件类型

滚动条有水平滚动条(HScrollBars)和垂直滚动条(VScrollBars)两种 滚动条控件为不能自动支持滚动的程序和控件提供的滚动功能
18
第十章 用户定义类型与枚举类型
三、滚动条控件
2、滚动条控件的常用属性
Min 、 Max 属性 : 返回或设置滚动条所能代表的最小、最大值,其取值范围为 32768-32767。Min属性的默认值为0,Max属性的默认值为32767。
22
第十章 用户定义类型与枚举类型
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then a = InStr(4, Text1.Text, ", ") b = InStr(a + 1, Text1.Text, ", ") c = InStr(b + 1, Text1.Text, ")") HScroll1(0).Value = Val(Mid(Text1.Text, 5, a - 5)) HScroll1(1).Value = Val(Mid(Text1.Text, a + 1, b - a - 1)) HScroll1(2).Value = Val(Mid(Text1.Text, b + 1, c - b - 1)) End If End Sub
11
第十章 用户定义类型与枚举类型
二、枚举类型


枚举: 是指将变量的值一 一列出来,且变量的值只限于列举出来的值的范围内。
当一个变量只有几种可能的值时,可以定义为枚举类型。
12
第十章 用户定义类型与枚举类型
二、枚举类型
1、定义枚举类型

定义枚举类型语法格式

枚举类型放在窗体模块、标准模块的通用段,定义格式: [Public|Private] Enum <类型名称> <成员名> [=<常数表达式>] <成员名> [=<常数表达式>] … End Enum
源自文库
Value属性:返回或设置滚动条的当前位置,其返回值始终介于 Max和Min属性值 之间,包括这两个值。

LargeChange 属性 : 返回和设置当用户单击滚动箭头之间的区域时,滚动条控件 Value属性值的改变量。

SmallChange属性:返回和设置当用户单击滚动箭头时,滚动条控件Value属性值 的改变量。
‘学号 ‘姓名 ‘性别 ‘平均成绩
5
第十章 用户定义类型与枚举类型
一、用户定义类型
2、建立和使用用户定义类型的变量

建立用户定义类型的变量 可以使用 Dim、Private、Public、ReDim 或 Static 来声明用户自定义类型的 变量。

对同一种用户定义类型,可以声明为局部的、私有的或公用的模块级变量, 定义格式: Dim变量名 As 用户定义类型名
声明用户定义类型的变量 仅局部(Dim) 私有(Private)或公用(Public) 仅私有
假如声明使用Dim关键字,标准模块中的用户自定义类型将缺省为公有的。 假如希望自定义类型为私有的,确保用Private关键字将其声明为私有。
7
第十章 用户定义类型与枚举类型
一、用户定义类型
2、建立和使用用户定义类型的变量
测绘程序设计
第十章 用户定义类型与枚举类型
一、用户定义类型 二、枚举类型 三、滚动条控件 四、图像控件、图片框控件
2
第十章 用户定义类型与枚举类型
一、用户定义类型
1、建立用户定义类型
[Private | Public] Type 用户类型名 字段名1 As 数据类型名 [字段名2 As 数据类型名] ... [字段名n As 数据类型名] End Type
相关文档
最新文档