第6章过程的使用.ppt
《第6章过程的使用.ppt》由会员分享,可在线阅读,更多相关《第6章过程的使用.ppt(67页珍藏版)》请在三一文库上搜索。
1、1,第6章 过程的使用,6.1 Visual Basic的工程 6.2 过程 6.3 过程的调用 6.4 参数的传递 6.5 递归过程 6.6 变量的作用范围 6.7 过程的作用范围 6.8 Shell函数 6.9 程序举例,2,6.1 Visual Basic的工程,6.1.1 Visual Basic的文件类型 146 6.1.2 工程的组成 147 6.1.3 管理工程 148,3,6.1.1 VB的文件类型,1. 工程文件(.vbp) 工程文件(.vbp)包含了组成应用程序的所有窗体文件(.frm)、标准模块文件(.bas)、类模块文件(.cls)及其他文件,也包含了环境设置方面的信息
2、。 2窗体文件(.frm) 窗体文件包含本模块中窗体、控件的描述和属性设置,也包含窗体级的常量、变量、外部过程的声明,以及事件过程和通用过程的程序代码。,(快讲),4,6.1.1 VB的文件类型,3窗体的二进制数据文件(.frx) 窗体的二进制数据文件含有窗体上控件的二进制属性数据,以二进制数为其值。 4标准模块文件(.bas) 标准模块文件用于存放在几个模块中都要使用的公共代码,包含常量、变量、类型和过程的声明,以及通用过程代码。 5类模块文件(.cls) 类模块用于建立新对象,这些新对象可以包含自定义的属性和方法,类模块既包含代码又包含数据,可以被应用程序内的过程调用。,5,6.1.2 工
3、程的组成,图 VB应用程序的组成,6,6.1.2 工程的组成,1. 窗体模块(.frm),窗体模块包含事件过程和通用过程,通用过程又分为Sub过程和Function过程。,2. 标准模块(.bas),标准模块没有界面只有程序代码,包含通用过程的Sub过程和Function过程。,3. 类模块(.cls),类模块用于建立新对象,这些新对象可以包含自定义的属性和方法,类模块既包含代码又包含数据,它可以被应用程序内的过程调用。,7,6.1.3 管理工程,1. 保存工程,(1)保存工程,(2)生成exe文件,工程资源管理器,8,6.1.3 管理工程,2. 设置工程属性,选择“工程”菜单“工程属性”菜单
4、项则出现“工程属性”对话框,设置工程属性选项。,启动对象,工程类型,工程名称,帮助文件名,工程帮助上下文 ID,工程描述,工程属性设置,9,6.1.3 管理工程,3. 添加工程,在已建的工程环境中通过添加新的或现有的工程构成工程组。当装入了多个工程时,工程资源管理器窗口的标题就变成“工程组”。,添加新工程:,添加现有工程:,4. 删除工程,在工程资源管理器窗口中选择需删除的工程名,选择“文件”菜单“删除工程”菜单项,则从工程组中删除该工程。,5. 向工程中添加和删除文件,可以向工程中添加窗体、模块、属性页和用户控件等文件,选择“工程”菜单的下拉菜单的各种添加命令向工程中添加文件。,10,6.2
5、 过程,一个过程就是一段程序,一个模块由多个过程组成,一个应用程序通过过程间的相互调用构成。 6.2.1 Sub过程 6.2.2 Function过程,11,6.2.1 Sub过程,Vb中的sub过程有两种:事件过程和通用过程。 1事件过程 事件是能够被对象(窗体和控件)识别的动作。 事件过程由vb自行声明,为一个事件所编写的程序代码事件过程。 事件过程分为窗体事件过程和控件事件过程。,12,6.2.1 Sub过程,语法: Private Sub Form_事件名(参数列表) 局部变量和常数声明 语句块 End Sub 说明: 不管窗体是什么名字,但在事件过程中都使用“Form _事件名”。
6、窗体过程前面的声明都是Private,表示这个窗体过程只能在窗体模块中使用。 在Sub和End Sub之间的语句块,称为程序体或过程体。,1事件过程,(1) 窗体事件过程,13,6.2.1 Sub过程,语法: Private Sub 控件名_事件名(参数列表) 局部变量和常数声明 语句块 End Sub,(2)控件事件过程,控件的事件过程名定义为“控件名_事件名”。,14,6.2.1 Sub过程,(1) 定义 Private | Public Static Sub 过程名(参数列表) 局部变量和常数声明 语句块 Exit Sub 语句块 End Sub,2. 通用过程,Sub过程不能嵌套定义,
7、但是可以嵌套调用。,15,6.2.1 Sub过程,参数列表:类似于变量声明,列出了从调用过程传递来的参数值,称为形式参数(简称形参),多个形参之间则用逗号隔开,形参的定义如下: ByVal | ByRef 变量名 () As 数据类型 ,形 式 参 数 表,16,6.2.1 Sub过程,(2)建立通用过程 创建通用过程的方法有两种:一是利用“工具-添加过程”对话框,二是在代码窗口中直接输入。,添加过程对话框,17,6.2.1 Sub过程,例如: Public Sub sub1() Form2.Show Form1.Hide End Sub,18,6.2.2 Function过程,Functio
8、n过程与Sub过程的区别:Function过程可以返回一个值到调用的过程。 1. 函数定义 语法: Private | Public Static Function 函数名(参数列表) As 数据类型 局部变量和常数声明 函数名 = 表达式 Exit Function 语句块 函数名 = 表达式 End Function,19,6.2.2 Function过程,2. 建立函数过程 建立函数过程的方法与建立通用过程的方法相同,选择“工具”菜单的“添加过程”菜单项,然后在“添加过程”对话框中输入过程名,在“类型”选项中“函数”类型。,添 加 过 程 对 话 框,20,6.2.2 Function过
9、程,【例】计算圆面积的Function过程cir: Function cir(r As Single) As Single Const pi As Single = 3.1415926 cir = pi * r 2 End Function,21,6.3 过程的调用,6.3.1 调用Sub过程 6.3.2 调用Function过程,22,6.3.1 调用 Sub过程,调用Sub过程的两种方法: 1使用Call语句调用过程 Call语句的格式为: Call 过程名 (实在参数表列) 2. 将过程名作为语句使用(直接使用过程名) 如果省略 Call 关键字而直接将过程名作为语句使用,也必须省略实在
10、参数表列 外面的括号,参数和过程名用空格隔开。 过程名 实在参数表列,23,6.3.1 调用 Sub过程,1. 调用Sub 事件过程 Sub 事件过程可以由事件自动调用或者在同一模块中的其它过程中使用调用语句来调用。 Private Sub Form_Click() Call Command1_Click End Sub 或者: Private Sub Form_Click() Command1_Click End Sub 例6-1,24,6.3.1 调用 Sub过程,2. 调用Sub 通用过程 调用Sub 通用过程的语法与调用Sub 事件过程相同。不同的是,通用过程只有在被调用时才起作用,否
11、则不会被执行。 Public Sub sub1() Form2.Show Form1.Hide End Sub Private Sub Form_Click() Call Sub1 End Sub,25,6.3.2 调用Function过程,调用函数Function过程的方法和调用 VB 内部函数方法一样,在语句中直接使用函数名,Function 过程可返回一个值到调用的过程。,【例61】运行界面,【例62】运行界面,26,6.4 参数的传递,在调用一个有参数的过程时,首先进行的是形参和实参的结合,实现调用过程的实参与被调用过程的形参之间的数据传递。 6.4.1 形参和实参 6.4.2 参数按
12、值传递和按地址传递 6.4.3 数组参数 6.4.4 对象参数,27,6.4.1 形参和实参,1. 形参和实参,在Sub过程和Function过程中,被调过程中的参数是形参。形参列表中的各参数之间用逗号(,)分隔,形参可以是变量名或数组名,但不能是定长字符串变量。实参是在主调过程中的参数,在调用过程时实参将数据传递给形参。 形参列表和实参列表中的对应变量名可以不同,但实参和形参的个数、顺序以及数据类型必须相同。 否则出错。,参 数 出 错,28,6.4.1 形参和实参,Public Function Function1(ByVal a As Single, ByVal b As Single)
13、 As Single 计算直角斜边函数 Dim c As Single c = Sqr(a 2 + b 2) Function1 = c End Function Private Sub Command1_Click() 计算斜边 Dim a1 As Single, b1 As Single a1 = Val(Text1.Text) b1 = Val(Text2.Text) Text3.Text = Function1(a1, b1) End Sub,形式参数,实际参数,29,6.4.1 形参和实参,2形参的数据类型,(1)实参数据类型与形参定义的数据类型不一致 对于实参数据类型与形参定义的数
14、据类型不一致时,VB会按要求对实参进行数据类型转换,然后将转换值传递给形参。,(2)没有声明形参的数据类型,运行界面,在创建过程时,如果没有声明形参的数据类型,则默认为Variant型。,30,6.4.1 形参和实参,3. 使用可选的参数,VB中被调函数参数列表中的参数也可以是可选的,使用Optional 关键字来表示参数可选。,Private Function Divisor(Optional ByVal x As Variant, Optional ByVal y As Variant) As Integer求最大公约数子函数 Dim r As Integer If IsMissing(x
15、) Then x = 1 If IsMissing(y) Then y = 1 r = x Mod y Do While r 0 x = y y = r r = x Mod y Loop Divisor = y End Function,31,6.4.1 形参和实参,在未提供可选参数时,实际上是将该参数作为具有相应数据类型的初始值来赋值,不会出现编译错误的提示。 如果传递的参数是Variant型,可以在过程体中 通过IsMissing函数来测试调用时是否传递可选参数。,32,6.4.1 形参和实参,4. 使用可变参数 在传递参数时,如果要求参数的数目可以变化,使之可以接收任意多个参数,则在函数
16、过程或Sub过程中一般采用如下语法: Sub (,ParamArray ) 注意:ParamArray后面跟Variant型的数组, ParamArray 关键字不能与ByVal、ByRef或Optional 一起使用。,33,6.4.1 形参和实参,例如: Private Function divisor(ParamArray n() 通用函数求最大公约 Dim r As Integer If UBound(n) = 1 Then x = n(0): y = n(1) ElseIf UBound(n) = 0 Then x = n(0): y = 1 End If r = x Mod y D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 过程 使用
链接地址:https://www.31doc.com/p-2551520.html