内容正文:
第8章 过 程电子课件 中职 高教版 Visual Basic程序设计(第4版)
单元八 过 程
在VB程序设计中,除进行界面设计和算法设计外,主要工作是编写程序代码,而编写代码时根据应用的复杂程度,往往要将应用按功能及其他目的划分为若干个模块,而对每个模块按照情况还可以继续细分为子模块,通过VB提供的自定义过程将模块定义为一个个过程,供事件过程多次调用。
在前面的各章节中,我们已多次使用了事件过程,这样的过程构成了VB应用程序的主体。而用户自定义的过程(也称为通用过程),可以单独建立,供事件过程或其他过程调用。
在VB中根据过程是否有返回值,可把通用过程分为两类,即子过程和函数过程。
单元八 过 程
事 件 过 程
1
子 过 程
2
函 数 过 程
3
过程间参数的传递
4
过程的嵌套与递归
5
常 用 算 法 实 例
6
8.1 事件过程
1. 事件过程的运行机制
事件过程由VB自行声明,用户不能增加或删除。当用户对某个对象发出一个动作时,Windows会通知VB产生了一个事件,VB会自动地调用与该事件相关的事件过程。即当对象对一个事件的发生做出认定时,VB便自动用相应于事件的名字调用该事件的过程。由于名字在对象和代码之间建立了联系,所以说事件过程是依附于窗体和控件上的。
2. 事件过程的语法格式
控件事件过程的语法格式为:
Private Sub〈控件名〉_〈事件名〉([ 形参表 ])
[ 语句组 ]
End Sub
窗体事件过程的语法为:
Private Sub Form_〈事件名〉([ 形参表 ])
[ 语句组 ]
End Sub
返回目录
8.2 子过程
当有几个不同的事件过程需要执行相同的操作时,为了简化程序,可以将公共语句放入分离开的子过程(通用过程)中,并由事件过程来调用它。这样不必重复编写代码,维护程序也较容易。
子过程不与任何特定的事件相联系,只能由别的过程来调用,它可以存储在窗体或标准模块中。
8.2.1 子过程的程序设计实例
分别计算阶乘5!, 6!, 8!,以及它们的和
5! + 6! + 8!。
Sub fact(m As Integer, total As Long) Dim i As Integer
total = 1
For i = 1 To m
total = total * i
Next i
End Sub
Private Sub Command1_Click(Index As Integer)
Dim a As Integer, b As Integer, c As Integer, s As Long, tot As Long
n = Index
Select Case n
Case 0
a = 5
Call fact(a, tot)
Label1.Caption = a & "! = " & tot
Case 1
a = 6
Call fact(a, tot)
Label1.Caption = a & "! = " & tot
Case 2
a = 8
Call fact(a, tot)
Label1.Caption = a & "! = " & tot
Case 3
a = 5: b = 6: c = 8
Call fact(a, tot)
s = tot
Call fact(b, tot)
s = s + tot
Call fact(c, tot)
s = s + tot
Label1.Caption = a & "! + " & b & "! + " & c & "! = " & s
End Select
End Sub
8.2.2 子过程程序设计的相关知识
1. 建立子过程的两种方法
(1) 使用“添加过程”对话框。
打开代码编辑窗口,单击“工具”菜单→“添加过程”命令,打开“添加过程”对话框。在“名称”文本框中输入过程名“fact”,从“类型”组中选中“子程序”项,从“范围”组中选中“公有的”项,单击“确定”按钮。
(2) 在“代码”编辑窗口中输入。
[ Private | Public ][ Static ] Sub〈过程名〉( [ 形参表 ] )
[ 语句组 ]
[ Exit Sub ]
[ 语句组 ]
End Sub
2.