第06章 过程.ppt
《第06章 过程.ppt》由会员分享,可在线阅读,更多相关《第06章 过程.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章 过 程 6.1过程概述在VB5.0/6.0中,除了系统提供的内部函数过程和事件过程外,用户可自定义过程下列四种过程:“Sub”保留字开始的为子过程“Function”保留字开始的为函数过程“Property”保留字开始的为属性过程“Event”保留字开始的事件过程 在在VB中,的中,的Sub子过程分为:事件过程和通用过程子过程分为:事件过程和通用过程 6.2.1 事件过程事件过程 (1)窗体事件的语法)窗体事件的语法Private Sub Form_事件名事件名(参数列表参数列表)语句组语句组End Sub(2)控件事件的语法控件事件的语法Private Sub 控件名控件名_事件名事
2、件名(参数列表参数列表)语句组语句组 End Sub6.2 Sub过程过程子过程的定义形式如下:子过程的定义形式如下:Public|PrivateStatic Sub 子过程名子过程名(形参表形参表)语句组语句组 Exit Sub 语句组语句组End Sub 6.2.2 通用过程(通用过程(Sub过程)的定义过程)的定义 说明:说明:(1)子过程名:命名规则与变量名规则相同。子过程名不返回值,而是通过形参与实参的传递得到结果,调用时可返回多个值。(2)形式参数列表:形式参数通常简称“形参”,仅表示形参的类型、个数、位置,定义时是无值的,只有在过程被调用时,虚实参结合后才获得相应的值。(3)过程
3、可以无形式参数,但括号不能省。(4)参数的定义形式:ByValByRef变量名变量名()As 类型类型,,ByVal表示当该过程被调用时,参数是按值传递的;缺省或ByRef表示当该过程被调用时,参数是按地址传递的。例例6.1编一个交换两个整型变量值的子过程。PrivateSubSwap(XAsInteger,YAsInteger)DimtempAsIntegerTemp=X:X=Y:Y=TempEndSub6.2.3 子过程的建立子过程的建立 通过“工具”菜单中的“添加过程”命令,出现“添加过程”对话框(见图6.1),选择过程类型(子过程、函数、属性、事件)及作用范围(公有的Public、私有
4、的Private),单击确定后得到一个过程或函数定义的结构框架(模板),如:Public Sub Sort()End Sub6.2.4 过程的调用过程的调用 1 子过程的调用子过程的调用 子过程名子过程名 参数列表参数列表 或或 Call 子过程名子过程名(参数列表参数列表)2 函数过程的调用函数过程的调用 变量名变量名=函数过程名函数过程名(参数列表参数列表)说明:说明:(1)参数列表参数列表称为实参或实元,它必须与形参保持个数相称为实参或实元,它必须与形参保持个数相同,位置与类型一一对应。同,位置与类型一一对应。(2)调用时把实参值传递给对应的形参。其中值传递(形调用时把实参值传递给对应的
5、形参。其中值传递(形参前有参前有ByVal说明)时实参的值不随形参的值变化而改变。而说明)时实参的值不随形参的值变化而改变。而地址传递时实参的值随形参值的改变而改变。地址传递时实参的值随形参值的改变而改变。(3)当参数是数组时,形参与实参在参数声明时应省略当参数是数组时,形参与实参在参数声明时应省略其维数,但括号不能省。其维数,但括号不能省。(4)调用子过程的形式有两种,用调用子过程的形式有两种,用Call关键字时,实参关键字时,实参必须加圆括号括起,反之则实参之间用必须加圆括号括起,反之则实参之间用“,”分隔。分隔。例:调用上面定义的例:调用上面定义的Sawp子过程的形式:子过程的形式:Sw
6、ap a,b Call Swap(a,b)Private Sub CmdOK()Call Swap(a,b)Swap a,bEnd SubPrivate Sub Swap(x%,y%)Dim temp%Temp=X X=Y Y=TempEnd Sub 过程调用的执行过程:过程调用的执行过程:6.3Function过程VisualBasic函数分为内部函数和外部函数,外部函数是用户根据需要用Function关键字定义的函数过程,与子过程不同的是函数过程将返回一个值。6.3.1 函数过程(函数过程(Function过程)的定义过程)的定义Public|PrivateStaticFunction函数
7、名()As函数体函数名=返回值ExitFunction函数名=返回值EndFunction函数体说明:说明:(1)函数名:命名规则与变量名规则相同。但不能与系统的内部函数或其它通用子过程同名,也不能与已定义的全局变量和本模块中模块级变量同名。(2)在函数体内,函数名可以当变量使用,函数的返回值就是通过对函数名的赋值语句来实现的,在函数过程中至少要对函数名赋值一次。(3)AS类型:是指函数返回值的类型,若省略,则函数返回变体类型值(Variant)。(4)ExitFunction:表示退出函数过程,常常是与选择结构(If或SelectCase语句)联用,即当满足一定条件时,退出函数过程。(5)形
8、参数列表:形参的定义与子过程完全相同。例例6.26.3.2 函数的调用函数的调用调用形式如下:调用形式如下:函数名(实参列表)函数名(实参列表)说明:说明:在调用时实参和形参的数据类型、顺序、个数必须匹配。函数调用只能出现在表达式中,其功能是求得函数的返回值。例例6.36.4 过程之间参数的传递过程之间参数的传递VisualBasic中不同模块(过程)之间数据的传递有两种方式:通过过程调用实参与形参的结合实现;使用全局变量来实现各过程中共享数据。6.4.1 6.4.1 形式参数与形式参数与实际实际参数参数1、形式参数、形式参数是指在定义通用过程时,出现在Sub或Function语句中的变量名后
9、面园括号内的数,是用来接收传送给子过程的数据,形参表中的各个变量之间用逗号分隔。2、实际参数实际参数是指在调用Sub或Function过程时,写入子过程名或函数名后括号内的参数,其作用是将它们的数据(数值或地址)传送给Sub或Function过程与其对应的形参变量。实参可由常量、表达式、有效的变量名、数组名(后加左、右括号,如A())组成,实参表中各参数用逗号分隔。6.4.2 参数传递(虚实结合)参数传递(虚实结合)参数传递指主调过程的实参(调用时已有确定值和内存地址的参数)传递给被调过程的形参,参数的传递有两种方式:按值传递、按地址传递。形参前加“ByVal”关键字的是按值传递,缺省或加“B
10、yRef”关键字的为按地址传递。传址与传值传址与传值 传址:传址:形参得到的是实参的地址,当形参值的改变同形参得到的是实参的地址,当形参值的改变同时也改变实参的值。时也改变实参的值。传值:传值:形参得到的是实参的值,形参值的改变不会影形参得到的是实参的值,形参值的改变不会影响实参的值。响实参的值。Sub Swap2(x%,y%)Dim Temp%Temp=x:x=y:y=Temp End SubSub Swap1(ByVal x%,ByVal y%)Dim Temp%Temp=x:x=y:y=TempEnd Sub例例6.4 Private Sub CmdOK_Click()a%=10:b%=
11、20:Swap1 a,b 传传 值值 Print A1=;a,B1=;b a=10:b=20:Swap2 a,b 传地址传地址 Print A2=;a,B2=;bEnd Sub程序调用执行过程:值传递的执行过程如下图:值传递的执行过程如下图:通过地址传递数据的执行过程通过地址传递数据的执行过程 6.5 数组作过程的参数数组作过程的参数VisualBasic允许把数组作为实参传送到过程中。数组作参数是通过传地址方式传送。在传送数组时,除遵守参数传送的一般规则外,还应注意以下几点:还应注意以下几点:1为了把一个数组的全部元素传送给一个过程,应将数组名分别写入形参表中,并略去数组的上下界,但括号不能
12、省略。PrivateSubSort(a()Assingle)EndSub其中形参“a()”即为数组。2被调过程可通过Lbound和Ubound函数确定实参数组的上、下界。3当用数组作形参时,对应的实参必须也是数组,且类型一致。4实参和形参结合是按地址传递,即形参数组和实参数组共用一段内存单元。例如:定义了实参数组b(1to8),给它们赋了值,调用Sort()函数过程的形式如下:Sort b()或或 Call Sort(b()实参数组后面的括号可以省略,但为便于阅读,建议一般不要省略为好。调用时形参数组a和实参数组b虚实结合,共用一段内存单元,如图6-7所示。因此在Sort()过程中改变数组a的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第06章 过程 06
限制150内