VB过程课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.3. 3 调用其他模块中的过程 在应用程序的任何地方都能调用其他模块中的公有(全 在应用程序的任何地方都能调用其他模块中的公有 全 过程。 局)过程。 过程 1.窗体中的过程 . 从窗体模块的外部调用窗体中的公有过程, 从窗体模块的外部调用窗体中的公有过程,必须用窗体的名 字作为调用前缀,指明包含该过程的窗体模块。 字作为调用前缀,指明包含该过程的窗体模块。
7.4
参数的传递
在调用一个有参数的过程时,首先进行的是“形实结合” 在调用一个有参数的过程时,首先进行的是“形实结合” ,即按值传递或按地址传送方式,实现调用程序和被调用的过 即按值传递或按地址传送方式, 程之间的数据传递。 程之间的数据传递。 8.4.1 Sub Form_Click() Private 形参与实参 Dim X As 1.形参 String, Y As Integer . ……出现在 出现在Sub过程和 过程和Function过程的形参表中的变量名、数 过程的形参表中的变量名、 实参 过程和 过程的形参表中的变量名 Call Count(Y, X) 组名称之为形式参数。 组名称之为形式参数。 … 形参 End Sub 2.实参 . 实参是在调用Sub或Function过程时,传送给相应过程的 过程时, 实参是在调用 或 过程时 Private Sub Count(M As Integer, N As String) 变量名、数组名、常数或表达式, 变量名、数组名、常数或表达式,它们包含在过程调用的实参 …… 表中。 表中。 End Sub
7.3
过程调用
P163. 例
7.3.1 事件过程的调用 7.3.2 Sub过程的调用 过程的调用
VB有两种方式调用 有两种方式调用Sub过程。一种是把过程名放在 过程。 语句中, 有两种方式调用 过程 一种是把过程名放在Call语句中, 语句中 一种是把过程名作为一个语句来使用。 一种是把过程名作为一个语句来使用。 1.用Call语句调用 . 语句调用Sub过程 语句调用 过程 调用Sub过程语法如下: 过程语法如下: 调用 过程语法如下 Call 过程名 实在参数表) 过程名(实在参数表
1.定义窗体事件过程 定义窗体事件过程
窗体事件过程名
Private Sub Form_事件名 参数列表 事件名([参数列表 事件名 参数列表]) [局部变量和常数声明] 语句块 End Sub Private Sub Form_Click( ) Print "这是一个 的演示程序!" 这是一个VB的演示程序 这是一个 的演示程序! End Sub
假定在窗体模块FrmX中含有一个公有 中含有一个公有Sub过程 过程TestSub,则 假定在窗体模块 中含有一个公有 过程 , 在窗体FrmX以外的模块中用下面语句就可以正确地调用该 以外的模块中用下面语句就可以正确地调用该 在窗体 过程: 过程: Call FrmX. TestSub([实参表 实参表]) 实参表
在函数体内通过“函数名= 在函数体内通过“函数名=表 达式”语句给函数名赋值。 达式”语句给函数名赋值。
编写一个求n!的函数过程 的函数过程。 例7—1 编写一个求 的函数过程。 Private Function Fact(ByVal N as Integer) As Long Dim K As Ingeger Fact=1 If N=0 Or N=1 Then Exit Function C.在函数体内可以含有多个 在函数体内可以含有多个Exit Function语句,程序执行 语句, 在函数体内可以含有多个 语句 程序执行Exit Function else 语句时,提前退出Function过程,返回调用点。 过程, 语句时,提前退出 过程 返回调用点。 For K=1 To N Fact=Fact * K Next K End If End Function
通用过程 通用过程
[Private | Public][Static] Sub 过程名 参数列表]) 过程名([参数列表 参数列表 [局部变量和常量声明] 语句块 [Exit Sub] 语句块 End Sub A. Sub过程以 过程以Sub语句开头,以End sub语句结束。在sub和 语句开头, 语句结束。 过程以 语句开头 语句结束 和 End sub之间是描述过程操作的语句块,称为子程序体或过 之间是描述过程操作的语句块, 子程序体或 之间是描述过程操作的语句块 称为子程序体 程体。 程体
2.定义控件事件过程 . Private Sub 控件名 事件名 参数列表 控件名_事件名 参数列表]) 事件名([参数列表 [局部变量和常数声明] 语句块 End Sub 例如,在窗体中设置了一个名为Cmd的命令按钮控件,它 的命令按钮控件, 例如,在窗体中设置了一个名为 的命令按钮控件 的对应单击事件过程如下: 的对应单击事件过程如下: Private Sub Cmd_Click() Print "这是一个 的演示程序!" 这是一个VB的演示程序 这是一个 的演示程序! End Sub 3.建立事件过程 .
7.1.2 通用过程 一个应用程序中多个窗体可以共享的或一个窗体内不同 的事件过程可共享的程序代码,称为“通用过程” 的事件过程可共享的程序代码,称为“通用过程”。 公有(Public)过程 公有过程可以被应用程序 过程 公有过程可以被应用程序 公有 中的任一过程调用 私有(Private)过程 过程 私有 而私有过程只能被同一模 而私有过程只能被同一模 块中的过程调用 1.定义通用Sub过程 .定义通用 过程
2.建立Sub过程 .建立 过程
Function过程要由函数 创建通用过程的方法有两种。 创建通用过程的方法有两种 过程要由函数 名返回一个值。使用 名返回一个值。使用As 数据类型选项, 数据类型选项,指定函 6.2 Function过程定义 过程定义 数的类型。 数的类型。 Function过程的语法如下: 过程的语法如下
[Private | Public] [Static] Function 函数名 参数列表 函数名([参数列表 参数列表])[As数据类型 数据类型] 数据类型 [局部变量和常数声明 局部变量和常数声明] 局部变量和常数声明 [语句块 语句块] 语句块 [函数名=表达式] 函数名=表达式 函数名 [Exit Function] [语句块 语句块] 语句块 [函数名=表达式] 函数名=表达式 函数名 End Function
(1)执行 执行Call语句,VB将控制传递给由“过程名”指定的 语句, 将控制传递给由 过程名” 将控制传递给由“ 执行 语句
Sub过程,开始执行它。 过程,开始执行它。 过程
(2)实在参数是传送给被调用的 实在参数是传送给被调用的Sub过程的变量、常数或表达 过程的变量、 实在参数是传送给被调用的 过程的变量
7.3. 3 调用 调用Function过程 过程 调用Function过程的语法如下: 过程的语法如下 调用 Function过程名 ([实在参数表 ) 过程名 实在参数表 实在参数表] P166. 例8-3 VB也允许像调用Sub过程那样调用 VB也允许像调用Sub过程那样调用Function过程。 过程那样调用Function过程 过程。 也允许像调用
2,标准模块中的过程 标准模块中的过程 A.如果过程名是唯一的即在应用程序中不再有同名过程 如果过程名是唯一的即在应用程序中不再有同名过程 存在。则调用该过程时不必加模块名。 存在。则调用该过程时不必加模块名。 B.如果在两个以上的模块中都含有同名过程,那么调用 如果在两个以上的模块中都含有同名过程, 如果在两个以上的模块中都含有同名过程 同一模块内的公有过程时, 模块名。 同一模块内的公有过程时,可以不加 模块名。 假定在标准模块Modulel和Module2中都含有同名过程 假定在标准模块 和 中都含有同名过程 CommonSub,在Module1中用下面语句 , 中用下面语句 Call CommonSub (实在参数 实在参数) 实在参数 调用的是Module1中的 中的CommonSub过程,而不会是 过程, 调用的是 中的 过程 而不会是Module2 过程。 的CommonSub过程。 过程 例如, 中调用Module2中的 中的CommonSub,则可用 例如,在Module1 中调用 中的 , C.如果在其他模块中调用公有过程,则必须指定它是哪一个 如果在其他模块中调用公有过程, 如果在其他模块中调用公有过程 下面语句实现: 下面语句实现 模块的公有过程。 模块的公有过程。 Call Module2.CommonSub([实参表 实参表]) . 实参表
指定过程中的 局部变量为“ 局部变量为“ 静态” 静态”变量
B.参数列表中的参数称为形式参数 形式参数格式为: 参数列表中的参数称为形式参数,形式参数格式为 参数列表中的参数称为形式参数 形式参数格式为:
[ByVal][ByRef] 变量名 [( )] [As数据类型 数据类型] 数据类型
Private Sub Exam1(ByVal X as Integer, Y as Integer) Y=Y+8 X=X+Y Print X,Y End Sub 变量名[( :变量名为合法的VB变量名或数组名 变量名或数组名。 变量名 )]:变量名为合法的 变量名或数组名。若变 量名后无括号,则表示该形参是变量,否则是数组。 量名后无括号,则表示该形参是变量,否则是数组。 BYVal:表明其后的形参是按值传递参数或称为“传值 :表明其后的形参是按值传递参数或称为“ 参数, 替代, ”(Passed by Value)参数,若缺省或用“ByRef”替代,则表明参 参数 若缺省或用“ 替代 数是按地址传递(传址 参数或称为 引用” 数是按地址传递 传址)参数或称为“引用”(Passed by 传址 参数或称为“ Reference)参数。 参数。 参数
Function过程 过程
返回一个值
7. 1
7.1.1 事件过程 . .
Sub过程 Sub过程为窗体及窗体上的各种
编写的, 对象编写的,用来Leabharlann Baidu应 由用户或系统引发的各
中有两种Sub过程,即事件过程和通用过程。 过程, 事件过程和通用过程。 在VB中有两种 中有两种 过程
种事件的程序代码。 种事件的程序代码。 该事件过程只能在它自 事件过程分为窗体事件过程 控件事件过程两种 窗体事件过程和 事件过程分为窗体事件过程和控件事件过程两种。 己的窗体模块中被调用
式。如果被调用的程序是一个有参过程,在一般情况下,实 如果被调用的程序是一个有参过程,在一般情况下, 在参数的个数、类型和顺序, 在参数的个数、类型和顺序,应与被调用过程的形式参数相 匹配。 匹配。 P165. 例8-2 2.把过程名作为一个语句来用 . 调用过程的语法如下: 调用过程的语法如下: 过程名[实参 ,实参2…]] 过程名 实参1[,实参 实参 与第一种方式相比,它有两点不同: 与第一种方式相比,它有两点不同: (1)去掉关键字call; (1)去掉关键字call; 去掉关键字call (2)去掉“实在参数表”的括号。 (2)去掉“实在参数表”的括号。 去掉
Private Sub Form_Click() Dim X As String, Y As Integer …… Call Count(Y, X) … End Sub Private Sub Count(M As Integer, N As String) …… End Sub 在过程调用传递参数时, 在过程调用传递参数时,形参表与实参表中的对应变量名 可以不必相同,因为“形实结合”是按对应“位置”结合。 可以不必相同,因为“形实结合”是按对应“位置”结合。 在“形实结合”时,形参表中和实参表中的参数的个数要相同 形实结合” 形参表中和实参表中的参数的个数要相同 ,对应位置的参数类型要一致。 对应位置的参数类型要一致。
第7章 章
过程
在设计一个规模较大、复杂程度较高的程序时, 在设计一个规模较大、复杂程度较高的程序时,为简化程 序设计,将程序分割成较小的逻辑部件, 通常把这种逻辑 序设计,将程序分割成较小的逻辑部件,VB通常把这种逻辑 部件称为过程 过程。 部件称为过程。
Sub过程不返回值 过程
子程序过程(Sub Procedure) 子程序过程 VB中使用 中使用 的过程 属性过程(Property Procedure) 属性过程 函数过程(Function Procedure) 函数过程