第六章过程 6.1过程概述 在VB50/6.0中,除了系统提供的内部函数过程 和事件过程外,用户可自定义过程下列四种过程: ▲“Sub”保留字开始的为子过程 ▲“ Function?保留字开始的为函数过程 >“ Property'保留字开始的为属性过程 “ Event保留字开始的事件过程
第六章 过 程 6.1 过程概述 在VB5.0/6.0中,除了系统提供的内部函数过程 和事件过程外,用户可自定义过程下列四种过程: ➢▲ “Sub” 保留字开始的为子过程 ➢▲“Function” 保留字开始的为函数过程 ➢ “Property”保留字开始的为属性过程 ➢“Event”保留字开始的事件过程
62Sub过程 在VB中,的Sub子过程分为:事件过程和通用过程 621事件过程 (1)窗体事件的语法 Private sub Form事件名(参数列表) End sub (2)控件事件的语法 Private sub控件名事件名(参数列表) End Sub
在VB中,的Sub子过程分为:事件过程和通用过程 6.2.1 事件过程 (1)窗体事件的语法 Private Sub Form_事件名(参数列表) <语句组> End Sub (2)控件事件的语法 Private Sub 控件名_事件名(参数列表) <语句组> End Sub 6.2 Sub过程
622通用过程(Sub过程)的定义 子过程的定义形式如下: [Pub1ic| Private][ static]sub子过程名([形参表]) [Exi七Sub] End Sub 说明: (1)子过程名:命名规则与变量名规则相同。子过程名不 返回值,而是通过形参与实参的传递得到结果,调用时可 返回多个值
子过程的定义形式如下: [Public|Private][Static] Sub 子过程名([形参表]) <语句组> [Exit Sub] <语句组> End Sub 6.2.2 通用过程(Sub过程)的定义 说明: (1)子过程名:命名规则与变量名规则相同。子过程名不 返回值,而是通过形参与实参的传递得到结果,调用时可 返回多个值
(2)形式参数列表:形式参数通常简称“形参”,仅表示 形参的类型、个数、位置,定义时是无值的,只有在过程被 调用时,虚实参结合后才获得相应的值 (3)过程可以无形式参数,但括号不能省。 (4)参数的定义形式: [ByVa1| ByRef]变量名[()][As类型][,…], By Val表示当该过程被调用时,参数是按值传递的;缺省或 ByRe表示当该过程被调用时,参数是按地址传递的 例6.编一个交换两个整型变量值的子过程。 Private Sub Swap( X As Integer, Y As Integer) Dim temp As Integer Temp=X X-Y :Y=Temp End sub
(2)形式参数列表:形式参数通常简称“形参” ,仅表示 形参的类型、个数、位置,定义时是无值的,只有在过程被 调用时,虚实参结合后才获得相应的值。 (3)过程可以无形式参数,但括号不能省。 (4)参数的定义形式: [ByVal|ByRef]变量名[( )][As 类型][,…], ByVal表示当该过程被调用时,参数是按值传递的;缺省或 ByRef表示当该过程被调用时,参数是按地址传递的。 例6.1编一个交换两个整型变量值的子过程。 Private Sub Swap( X As Integer, Y As Integer) Dim temp As Integer Temp=X : X=Y : Y=Temp End Sub
623子过程的建立 通过“工具”菜单中的“添加过程”命令,出现“添加过 程”对话框(见图6.1),选择过程类型(子过程、函数、属 性、事件)及作用范围(公有的 Public、私有的 Private),单 击确定后得到一个过程或函数定义的结构框架(模板),如: Pub1 ic Sub Sort()际加过程 名称g):[Eort 确定 类型 End Sub 取消 G子程序 属性①) C函数〕 事件 范围 G公有的① C私有的 厂所有本地变量为静态变量aA)
6.2.3 子过程的建立 通过 “工具”菜单中的“添加过程”命令,出现“添加过 程”对话框(见图6.1),选择过程类型(子过程、函数、属 性、事件)及作用范围(公有的Public、私有的Private),单 击确定后得到一个过程或函数定义的结构框架(模板),如: Public Sub Sort( ) …… End Sub
624过程的调用 1子过程的调用 子过程名参数列表] 或 Cal子过程名(参数列表) 2函数过程的调用 变量名=函数过程名(参数列表D 说明: (1)参数列表称为实参或实元,它必须与形参保持个数相 同,位置与类型一一对应。 2)调用时把实参值传递给对应的形参。其中值传递(形 参前有Byva说明)时实参的值不随形参的值变化而改变。而 地址传递时实参的值随形参值的改变而改变
6.2.4 过程的调用 1 子过程的调用 子过程名 [参数列表] 或 Call 子过程名(参数列表) 2 函数过程的调用 变量名 = 函数过程名([参数列表]) 说明: (1)参数列表称为实参或实元,它必须与形参保持个数相 同,位置与类型一一对应。 (2)调用时把实参值传递给对应的形参。其中值传递(形 参前有ByVal说明)时实参的值不随形参的值变化而改变。而 地址传递时实参的值随形参值的改变而改变
(3)当参数是数组时,形参与实参在参数声明时应省略 其维数,但括号不能省。 (4)调用子过程的形式有两种,用Ca关键字时,实参 必须加圆括号括起,反之则实参之间用“,”分隔。 例:调用上面定义的Sawp子过程的形式: Swap b Call Swap(a, b)
(3)当参数是数组时,形参与实参在参数声明时应省略 其维数,但括号不能省。 (4)调用子过程的形式有两种,用Call关键字时,实参 必须加圆括号括起,反之则实参之间用“,”分隔。 例:调用上面定义的Sawp子过程的形式: Swap a,b Call Swap(a,b)
过程调用的执行过程: Private Sub cmdOKO Private Sub Swap(x%y%o) Dim temp Call Swap(a, b) Temp=X XEY Swap a Y=Temp End Sub End Sub
Private Sub CmdOK() …… Call Swap(a,b) …… Swap a,b End Sub Private Sub Swap(x%,y%) Dim temp% Temp=X X=Y Y=Temp End Sub 过程调用的执行过程:
6.3 Function过程 Visual basic函数分为内部函数和外部函数,外部函数 是用户根据需要用 Function关键字定义的函数过程,与子 过程不同的是函数过程将返回一个值 631函数过程( Function过程)的定义 [ Publio| Private][ static] Function函数名([])[As 函数体[函数名=返回值] [Exit Function] 函数体 [函数名=返回值] End Function
6.3 Function过程 Visual Basic函数分为内部函数和外部函数,外部函数 是用户根据需要用Function关键字定义的函数过程,与子 过程不同的是函数过程将返回一个值 。 6.3.1 函数过程(Function过程)的定义 [Public|Private][Static]Function 函数名([])[As] 函数体[函数名=返回值] [Exit Function] [函数名=返回值] End Function 函数体
说明 (1)函数名:命名规则与变量名规则相同。但不能与系统的 内部函数或其它通用子过程同名,也不能与已定义的全局变 量和本模块中模块级变量同名。 (2)在函数体内,函数名可以当变量使用,函数的返回值就 是通过对函数名的赋值语句来实现的,在函数过程中至少要 对函数名赋值一次。 (3)AS类型:是指函数返回值的类型,若省略,则函数返 回变体类型值( Variant)。 (4) Exit Function:表示退出函数过程,常常是与选择结构 (I或 Select case语句)联用,即当满足一定条件时,退出函 数过程。 (5)形参数列表:形参的定义与子过程完全相同 例62
说明: (1)函数名:命名规则与变量名规则相同。但不能与系统的 内部函数或其它通用子过程同名,也不能与已定义的全局变 量和本模块中模块级变量同名。 (2)在函数体内,函数名可以当变量使用,函数的返回值就 是通过对函数名的赋值语句来实现的,在函数过程中至少要 对函数名赋值一次。 (3)AS类型:是指函数返回值的类型,若省略,则函数返 回变体类型值(Variant)。 (4)Exit Function:表示退出函数过程,常常是与选择结构 (If或Select Case语句)联用,即当满足一定条件时,退出函 数过程。 (5)形参数列表:形参的定义与子过程完全相同。 例6.2