第6章过程的使用课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第6章过程的使用课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 过程 使用 课件
- 资源描述:
-
1、第第6章章 过程的使用过程的使用 6.1 Visual Basic的工程 6.2 过程 6.3 过程的调用 6.4 参数的传递 6.5 递归过程 6.6 变量的作用范围 6.7 过程的作用范围 6.8 Shell函数 6.9 程序举例6.1 Visual Basic6.1 Visual Basic的工程的工程6.1.1 Visual Basic的文件类型的文件类型1466.1.2 工程的组成工程的组成1476.1.3 管理工程管理工程1486.1.1 VB的文件类型的文件类型1.1.工程文件(工程文件(.vbp.vbp)工程文件(工程文件(.vbp.vbp)包含了组成应用程序的所有窗体文件)包
2、含了组成应用程序的所有窗体文件(.frm.frm)、标准模块文件()、标准模块文件(.bas.bas)、类模块文件()、类模块文件(.cls.cls)及其)及其他文件,也包含了环境设置方面的信息。他文件,也包含了环境设置方面的信息。2 2窗体文件(窗体文件(.frm.frm)窗体文件包含本模块中窗体、控件的描述和属性设置,也窗体文件包含本模块中窗体、控件的描述和属性设置,也包含窗体级的常量、变量、外部过程的声明,以及事件过程和包含窗体级的常量、变量、外部过程的声明,以及事件过程和通用过程的程序代码。通用过程的程序代码。(快讲)(快讲)6.1.1 VB的文件类型的文件类型3 3窗体的二进制数据文
3、件(窗体的二进制数据文件(.frx.frx)窗体的二进制数据文件含有窗体上控件的二进制属性数据,窗体的二进制数据文件含有窗体上控件的二进制属性数据,以二进制数为其值。以二进制数为其值。4 4标准模块文件(标准模块文件(.bas.bas)标准模块文件用于存放在几个模块中都要使用的公共代码,标准模块文件用于存放在几个模块中都要使用的公共代码,包含常量、变量、类型和过程的声明,以及通用过程代码。包含常量、变量、类型和过程的声明,以及通用过程代码。5 5类模块文件(类模块文件(.cls.cls)类模块用于建立新对象,这些新对象可以包含自定义的属类模块用于建立新对象,这些新对象可以包含自定义的属性和方法
4、,类模块既包含代码又包含数据,可以被应用程序内性和方法,类模块既包含代码又包含数据,可以被应用程序内的过程调用。的过程调用。6.1.2 工程的组成工程的组成 VB应用程序应用程序(.vbp文件)文件)标准模块(标准模块(.bas文件)文件)至少一个窗体模块至少一个窗体模块(.frm文件)文件)Sub过程过程类模块(类模块(.cls文件)文件)函数过程函数过程Function()事件过程事件过程Sub过程过程函数过程函数过程Function()图图 VB应用程序的组成应用程序的组成6.1.2 工程的组成工程的组成1.窗体模块(窗体模块(.frm)窗体模块包含事件过程和通用过程,通用过程又分为窗体
5、模块包含事件过程和通用过程,通用过程又分为Sub过程和过程和Function过程。过程。2.标准模块(标准模块(.bas)标准模块没有界面只有程序代码,包含通用过程的标准模块没有界面只有程序代码,包含通用过程的Sub过程和过程和Function过程。过程。3.类模块(类模块(.cls)类模块用于建立新对象,这些新对象可以包含自定义的类模块用于建立新对象,这些新对象可以包含自定义的属性和方法,类模块既包含代码又包含数据,它可以被应属性和方法,类模块既包含代码又包含数据,它可以被应用程序内的过程调用。用程序内的过程调用。6.1.3 管理工程管理工程1.保存工程保存工程(1)保存工程)保存工程(2)
6、生成)生成exe文件文件工程资源管理器工程资源管理器6.1.3 管理工程管理工程 2.设置工程属性设置工程属性 选择选择“工程工程”菜单菜单“工程属性工程属性”菜单项则出现菜单项则出现“工程属工程属性性”对话框对话框,设置工程属性选项。,设置工程属性选项。启动对象启动对象工程类型工程类型工程名称工程名称帮助文件名帮助文件名工程帮助上下文工程帮助上下文 ID工程描述工程描述工程属性设置工程属性设置6.1.3 管理工程管理工程 3.添加工程添加工程 在已建的工程环境中通过添加新的或现有的工程构成工在已建的工程环境中通过添加新的或现有的工程构成工程组。当装入了多个工程时,工程资源管理器窗口的标题就程
7、组。当装入了多个工程时,工程资源管理器窗口的标题就变成变成“工程组工程组”。添加新工程:添加新工程:添加现有工程:添加现有工程:4.删除工程删除工程 在工程资源管理器窗口中选择需删除的工程名,选择在工程资源管理器窗口中选择需删除的工程名,选择“文文件件”菜单菜单“删除工程删除工程”菜单项,则从工程组中删除该工程。菜单项,则从工程组中删除该工程。5.向工程中添加和删除文件向工程中添加和删除文件 可以向工程中添加窗体、模块、属性页和用户控件等文件,可以向工程中添加窗体、模块、属性页和用户控件等文件,选择选择“工程工程”菜单的下拉菜单的各种添加命令向工程中添加菜单的下拉菜单的各种添加命令向工程中添加
8、文件。文件。6.2 过程过程 一个过程就是一段程序,一个模块由多个过一个过程就是一段程序,一个模块由多个过程组成,一个应用程序通过过程间的相互调用构程组成,一个应用程序通过过程间的相互调用构成。成。6.2.1 Sub过程过程 6.2.2 Function过程过程6.2.1 Sub过程过程 Vb中的中的sub过程有两种:事件过程和通用过程。过程有两种:事件过程和通用过程。1事件过程事件过程v事件事件是能够被对象(窗体和控件)识别的动作。是能够被对象(窗体和控件)识别的动作。v事件过程事件过程由由vb自行声明,为一个事件所编写的程自行声明,为一个事件所编写的程序代码事件过程。序代码事件过程。v事件
9、过程分为窗体事件过程和控件事件过程。事件过程分为窗体事件过程和控件事件过程。6.2.1 Sub过程过程语法:语法:Private Sub Form_事件名事件名(参数列表参数列表)局部变量和常数声明局部变量和常数声明语句块语句块End Sub说明:说明:v不管窗体是什么名字,但在事件过程中都使用不管窗体是什么名字,但在事件过程中都使用“Form _事事件名件名”。v窗体过程前面的声明都是窗体过程前面的声明都是Private,表示这个窗体过程只能,表示这个窗体过程只能在窗体模块中使用。在窗体模块中使用。v在在Sub和和End Sub之间的语句块,称为程序体或过程体。之间的语句块,称为程序体或过程
10、体。1事件过程事件过程(1)窗体事件过程窗体事件过程6.2.1 Sub过程过程语法:语法:Private Sub 控件名控件名_事件名事件名(参数列表参数列表)局部变量和常数声明局部变量和常数声明语句块语句块End Sub(2)控件事件过程)控件事件过程控件的事件过程名定义为控件的事件过程名定义为“控件名控件名_事件名事件名”。6.2.1 Sub过程过程(1)定义定义Private|Public Static Sub 过程名过程名(参数列表参数列表)局部变量和常数声明局部变量和常数声明语句块语句块Exit Sub语句块语句块End Sub2.通用过程通用过程 Sub过程不能嵌套定义,但是可以嵌
11、套调用。过程不能嵌套定义,但是可以嵌套调用。6.2.1 Sub过程过程参数列表参数列表:类似于变量声明,列出了从调用过程传递来的:类似于变量声明,列出了从调用过程传递来的参数值,称为形式参数(简称形参),多个形参之间则用参数值,称为形式参数(简称形参),多个形参之间则用逗号隔开,形参的定义如下:逗号隔开,形参的定义如下:ByVal|ByRef 变量名变量名()As 数据类型数据类型 部部 分分描描 述述ByVal表示该参数按值传递。表示该参数按值传递。ByRef表示该参数按地址传递(默认)。表示该参数按地址传递(默认)。变量名变量名()代表参数的变量名称。代表参数的变量名称。数据类型数据类型用
12、于说明传递给该过程的参数数据类型,默认为用于说明传递给该过程的参数数据类型,默认为Variant。可以是。可以是Byte、Boolean、Integer、Long、Currency、String、Single、Double、Date或或Object。形形 式式 参参 数数 表表6.2.1 Sub过程过程 (2)建立通用过程)建立通用过程 创建通用过程的方法有两种:一是创建通用过程的方法有两种:一是利用利用“工具工具-添加过程添加过程”对话框,二是在代码窗口中直接输入。对话框,二是在代码窗口中直接输入。添加过程对话框添加过程对话框6.2.1 Sub过程过程例如:例如:Public Sub sub
13、1()Form2.Show Form1.HideEnd Sub6.2.2 Function过程过程 Function过程与过程与Sub过程的区别:过程的区别:Function过程可以返回一过程可以返回一个值到调用的过程。个值到调用的过程。1.函数定义函数定义语法:语法:Private|Public Static Function 函数名函数名(参数列表参数列表)As 数据类型数据类型局部变量和常数声明局部变量和常数声明函数名函数名=表达式表达式Exit Function语句块语句块函数名函数名=表达式表达式 End Function6.2.2 Function过程过程2.建立函数过程建立函数过
14、程 建立函数过程的方法与建立通用过程的方法相同,选择建立函数过程的方法与建立通用过程的方法相同,选择“工具工具”菜单的菜单的“添加过程添加过程”菜单项,然后在菜单项,然后在“添加过程添加过程”对话框中输入过程名,在对话框中输入过程名,在“类型类型”选项中选项中“函数函数”类型。类型。添添 加加 过过 程程 对对 话话 框框6.2.2 Function过程过程【例】计算圆面积的【例】计算圆面积的Function过程过程cir:Function cir(r As Single)As Single Const pi As Single=3.1415926 cir=pi*r 2End Function
15、6.3 过程的调用过程的调用6.3.1 调用调用Sub过程过程6.3.2 调用调用Function过程过程6.3.1 调用调用 Sub过程过程 调用调用Sub过程的两种方法:过程的两种方法:1使用使用Call语句调用过程语句调用过程 Call语句的格式为:语句的格式为:Call 过程名过程名 (实在参数表列实在参数表列)2.将过程名作为语句使用(直接使用过程名)将过程名作为语句使用(直接使用过程名)如果省略如果省略 Call 关键字而直接将过程名作为语句使用,关键字而直接将过程名作为语句使用,也必须省略也必须省略实在参数表列实在参数表列 外面的括号,参数和过程名用外面的括号,参数和过程名用空格
16、隔开。空格隔开。过程名过程名 实在参数表列实在参数表列6.3.1 调用调用 Sub过程过程1.调用调用Sub 事件过程事件过程Sub 事件过程可以由事件自动事件过程可以由事件自动调用或者在同一模块中的其它调用或者在同一模块中的其它过程中使用调用语句来调用。过程中使用调用语句来调用。Private Sub Form_Click()Call Command1_ClickEnd Sub或者:或者:Private Sub Form_Click()Command1_ClickEnd Sub例例6-1Sub调用调用Command1_Click过程过程End SubSubEnd Sub调用调用返回返回For
17、m_Click过程过程调用事件过程调用事件过程Command1_Click过程过程6.3.1 调用调用 Sub过程过程2.调用调用Sub 通用过程通用过程 调用调用Sub 通用过程的语法与调用通用过程的语法与调用Sub 事件过程相同。不事件过程相同。不同的是,通用过程只有在被调用时才起作用,否则不会被同的是,通用过程只有在被调用时才起作用,否则不会被执行。执行。Public Sub sub1()Form2.Show Form1.HideEnd SubPrivate Sub Form_Click()Call Sub1End Sub6.3.2 调用调用Function过程过程 调用函数调用函数Fu
18、nction过程的方法和调用过程的方法和调用 VB 内部函数方法内部函数方法一样,在语句中直接使用函数名,一样,在语句中直接使用函数名,Function 过程可返回一个过程可返回一个值到调用的过程。值到调用的过程。【例【例61】运行界面】运行界面【例【例62】运行界面】运行界面6.4 参数的传递参数的传递 在调用一个有参数的过程时,首先进行的是在调用一个有参数的过程时,首先进行的是形参和实参的结合,实现调用过程的实参与被调形参和实参的结合,实现调用过程的实参与被调用过程的形参之间的数据传递。用过程的形参之间的数据传递。6.4.1 形参和实参形参和实参6.4.2 参数按值传递和按地址传递参数按值
19、传递和按地址传递6.4.3 数组参数数组参数6.4.4 对象参数对象参数6.4.1 形参和实参形参和实参1.形参和实参形参和实参 在在Sub过程和过程和Function过过程中,被调过程中的参数是程中,被调过程中的参数是形形参参。形参列表中的各参数之间。形参列表中的各参数之间用用逗号(逗号(,)分隔,形参可以是分隔,形参可以是变量名或数组名,但不能是定变量名或数组名,但不能是定长字符串变量。长字符串变量。实参实参是在主调是在主调过程中的参数,在调用过程时过程中的参数,在调用过程时实参将数据传递给形参。实参将数据传递给形参。形参列表和实参列表中的形参列表和实参列表中的对应变量名可以不同,但实参对
20、应变量名可以不同,但实参和形参的个数、顺序以及数据和形参的个数、顺序以及数据类型必须相同。类型必须相同。否则出错。否则出错。参参 数数 出出 错错6.4.1 形参和实参形参和实参Public Function Function1(ByVal a As Single,ByVal b As Single)As Single 计算直角斜边函数计算直角斜边函数 Dim c As Single c=Sqr(a 2+b 2)Function1=cEnd FunctionPrivate Sub Command1_Click()计算斜边计算斜边 Dim a1 As Single,b1 As Single a1
21、=Val(Text1.Text)b1=Val(Text2.Text)Text3.Text=Function1(a1,b1)End Sub形式参数形式参数实际参数实际参数6.4.1 形参和实参形参和实参2形参的数据类型形参的数据类型(1)实参数据类型与形参定义的数)实参数据类型与形参定义的数据类型不一致据类型不一致 对于实参数据类型与形参定义对于实参数据类型与形参定义的数据类型不一致时,的数据类型不一致时,VB会按要会按要求对实参进行数据类型转换,然后求对实参进行数据类型转换,然后将转换值传递给形参。将转换值传递给形参。(2)没有声明形参的数据类型)没有声明形参的数据类型 运行界面运行界面 在创
22、建过程时,如果没有声明形参在创建过程时,如果没有声明形参的数据类型,则默认为的数据类型,则默认为Variant型。型。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
23、 IsMissing(x)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=yEnd Function6.4.1 形参和实参形参和实参 在未提供可选参数时,实际上是将该参数作为在未提供可选参数时,实际上是将该参数作为具有相应数据类型的初始值来赋值,不会出现编译具有相应数据类型的初始值来赋值,不会出现编译错误的提示。错误的提示。如果传递的参数是如果传递的参数是Variant型,可以在过程体中型,可以在过程体中 通过通过IsMissing函数来测试调用时是否传递可选参函数来测
24、试调用时是否传递可选参数。数。6.4.1 形参和实参形参和实参4.使用可变参数使用可变参数 在传递参数时,如果要求参数的数目可以变化,在传递参数时,如果要求参数的数目可以变化,使之可以接收任意多个参数,则在函数过程或使之可以接收任意多个参数,则在函数过程或Sub过程中一般采用如下语法:过程中一般采用如下语法:Sub (,ParamArray )注意注意:ParamArray后面跟后面跟Variant型的数组,型的数组,ParamArray 关键字不能与关键字不能与ByVal、ByRef或或Optional 一起使用。一起使用。6.4.1 形参和实参形参和实参例如:例如:Private Func
25、tion 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 Do While r 0 x=y y=r r=x Mod y Loop divisor=yEnd Function6.4.2 参数按值传递和按地址传递参数按值传递和按地址传递1.按值传递参数按值传递参数 定义被调过程时形参使用定义被调过程时形参使用ByVal关键字,或调用语句中关键字,或调用语句中的实参
展开阅读全文