61过程概述 在VB5060中,除了系统提供的内部函数过程 和事件过程外,用户可自定义过程下列四种过程 ▲“Sub”保留字开始的为子过程 ▲“ Function”保留字开始的为函数过程 >“ Property3‘保留字开始的为属性过秸 “ 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过程
62,2通用过程(Sub过程)的定义 子过程的定义形式如下: 1ic| Private][ static]/Ayb子过程名/[形参表]) [Exit 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.1编一个交换两个整型变量值的子过程 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
6.2.3/过程的 通过“工具”菜单中的“添加过程”命令,出现“添加过 程”对话框(见图61),选择过程类型(子过程、函数、属 性、事件)及作用范围(公有的 Public、私有的 Private),单 击确定后得到一个过程或函数定义的结构框架(模板),如: Public 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子过程的调用 子过程名参《列表 或 Ca子过程名冷数列表) 2函数过程的调用 变量名=函数过程名(参数列表 说明: (1)参数列表称为实参或实元,它必须与形参保持个数相 同,位置与类型一一对应 (2)调用时把实参值传递给对应的形参。其中值传递(形 参前有Byva说明)时实参的值不随形参的值变化而改变。而 地址传递时实参的值随形参值的改变而改变
6.2.4 过程的调用 1 子过程的调用 子过程名 [参数列表] 或 Call 子过程名(参数列表) 2 函数过程的调用 变量名 = 函数过程名([参数列表]) 说明: (1)参数列表称为实参或实元,它必须与形参保持个数相 同,位置与类型一一对应。 (2)调用时把实参值传递给对应的形参。其中值传递(形 参前有ByVal说明)时实参的值不随形参的值变化而改变。而 地址传递时实参的值随形参值的改变而改变
(3)当参数是数组时,形参与实参在参数声明时应省略 其维数,但括号不能省。 (4)调用子过程的形式有两种,用Ca关键字时,实参 必须加圆括号括起,反之则实参之间用“,”分隔。 例:调用上面定义的Sawp子过程的形式 Swap a,b Call Swap(a,b)
(3)当参数是数组时,形参与实参在参数声明时应省略 其维数,但括号不能省。 (4)调用子过程的形式有两种,用Call关键字时,实参 必须加圆括号括起,反之则实参之间用“,”分隔。 例:调用上面定义的Sawp子过程的形式: Swap a,b Call Swap(a,b)
过程调用的执行过程: Private Sub CmdOKO Private Sub Swap(x%03y%) Dimtemp% Call Swap(a, b) Temp=x X=Y Swap a'b 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过程)的定义 [ Public| Private][ static] Function函数名([])[AS] 函数体[函数名=返回值] [Exit卫 unction] 函数体 [函数名=返回值] 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