Download presentation
Presentation is loading. Please wait.
Published byVille-Veikko Juha-Pekka Sala Modified 5年之前
1
第7章 过 程 Visual Basic中过程分为两种,一种是事件过程,例如前面涉及到的按钮的Click事件过程、窗体的Load事件过程等。另一种是通用过程,它主要用来让事件过程或其他通用过程调用。本章主要介绍的就是这种过程。
2
7.1 Sub 过程 通用过程分为两种,一种是Sub过程(子程序过程),另一种为Function过程(函数过程)。Sub过程不返回值,而Function过程要向调用它的语句返回值。每个通用过程都应该实现一个或多个具体功能。
3
建立 Sub 过程 通用Sub过程可以在窗体模块中建立,也可以在标准模块中建立。如果要建立一个工程中所有位置的程序都能调用的Sub过程,最好是在标准模块中建立,其优点是后期维护方便。如果要建立只是在本窗体模块中调用的过程,则应当写在窗体模块中。在哪里建立Sub过程,上面只是一些建议,并非是Visual Basic严格的规则。建立Sub过程,也称之为定义Sub过程。(具体内容请参照本书)
4
调用 Sub 过程 要执行一个过程,则必须调用该过程。调用Sub过程有两种方式,一种是使用Call语句,另一种是把过程名作为一个语句来使用。(具体内容请参照本书)
5
通用过程与事件过程 事件过程也是Sub过程,但它是一种特殊的Sub过程,它附加在窗体和控件上。一个控件的事件过程由实际名称、下划线和事件名组成;而窗体的事件过程由“Form”、下划线和事件名组成。控件事件过程的一般格式为: [Public | Private ] Sub 控件名_事件名(参数表) 语句块 End Sub(具体内容请参照本书)
6
7.2 Function 过程 前面介绍了Sub过程,它不直接返回值,可以作为独立的基本语句调用。而Function过程要返回一个值,通常出现在表达式中。这一节将介绍Function过程的定义和调用。
7
7.2.1 建立 Function 过程 Function 过程也被称为函数,其格式如下:
[ Static][Public | Private ] Function 过程名([形参表])[As 类型] [局部变量声明] [语句块] [过程名=表达式] [Exit Function] End Sub
8
调用 Function 过程 调用Function 过程的方法和调用系统内部函数(如Val、Sqr、InputBox)没什么区别,只是内部函数由系统提供,而Function 过程由用户自己编写而已。
9
7.3 参数传递 参数可以说是过程和调用程序之间的桥梁,通过参数可以将调用程序的数据传递给过程,过程得到数据后,才能进行相应的处理。在Visual Basic中,参数的传递分为两种,分别为值传递和地址传递。所谓值传递是将实参的内容传递给形参;而地址传递是将实参的内存地址传递给形参。
10
值传递 值传递方式就是将实参的内容传递给形参。如果Sub过程执行过程中,形参的值被改变了,此值不会影响主调程序中的实参的值。如图7.8所示如果实参a 的值为5,则将5传给形参b,b的值也为5。如果Sub过程中将b的值改变为10,a 的值不会发生变化。对于这种值传递方式,a和b 两个变量在内存中分别占两个存储单元,它们之间互不干涉。在Visual Basic中,传值的形参前加ByVal关键字。
11
地址传递 在调用Sub过程时用地址传递方式,则不是将实参的值传给形参,而是将实参的内存地址传给形参。因此形参也具有和实参相同的内存地址。这意味着实参与形参共用同一个内存单元,在调用Sub过程时,如果形参的值改变了,则调用程序里的实参的值也会被改变,可以参考图7.10。在Visual Basic中用ByRef表示地址传递方式。如果形参前既没写ByVal也没写ByRef,则代表省略了ByRef,即该参数使用地址传递。
12
7.4 可选参数与可变参数 Visual Basic 6.0提供了十分灵活和安全的参数传递方式,允许使用可选参数和可变参数。在调用一个过程时,可以向过程传送可选的参数或者任意数量的参数。
13
可选参数 在前面的例子中,过程的形参个数都是固定的,在调用时提供的实参个数必须和形参个数相同才可以。但是,使用Visual Basic的内部函数时会发现,在调用某函数时,可以省略其后的一些参数,例如InputBox、MsgBox等函数的参数都可以省略。这种可以省略的参数被称为可选参数。下面介绍编写带有可选参数过程的方法。
14
可变参数 一般来说,调用过程中的实参个数应等于过程定义时的形参个数。若用ParamArray关键字指明,过程将接受任意个数的参数,其通用格式为: Sub|Function 过程名(ParamArray 数组名)
15
7.5 对象参数 Visual Basic中不仅可以向过程传递普通数据类型的数据,还可以向过程传递对象,在形参表中,把形参变量的类型声明为“Control”,则可以向过程传递控件;若声明为“Form”,则可向过程传递窗体。对象的传递只能按地址传递。
16
窗体参数 有时需要将工程内的多个窗体设置为统一的属性,这时用形参为窗体参数的Sub过程非常合适。下面用一个例题介绍窗体参数的用法。(具体内容请参照本书)
17
控件参数 像窗体一样在编程时,经常会遇到将很多控件的属性也设置为相同值。所以,控件作为形参类型的过程也会被经常用到。向过程传递控件时不论是什么控件,形参变量的类型都用关键字“Control”声明。(具体内容请参照本书)
Similar presentations