《Visual Basic程序设计》-沈祥玖-电子教案 第8章 过程

上传人:E**** 文档编号:89401296 上传时间:2019-05-24 格式:PPT 页数:37 大小:210KB
返回 下载 相关 举报
《Visual Basic程序设计》-沈祥玖-电子教案 第8章 过程_第1页
第1页 / 共37页
《Visual Basic程序设计》-沈祥玖-电子教案 第8章 过程_第2页
第2页 / 共37页
《Visual Basic程序设计》-沈祥玖-电子教案 第8章 过程_第3页
第3页 / 共37页
《Visual Basic程序设计》-沈祥玖-电子教案 第8章 过程_第4页
第4页 / 共37页
《Visual Basic程序设计》-沈祥玖-电子教案 第8章 过程_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《《Visual Basic程序设计》-沈祥玖-电子教案 第8章 过程》由会员分享,可在线阅读,更多相关《《Visual Basic程序设计》-沈祥玖-电子教案 第8章 过程(37页珍藏版)》请在金锄头文库上搜索。

1、第8章 过程,子过程 函数过程 参数传递 过程和变量的作用域 键盘事件过程 鼠标事件过程,8.1 子过程,通用过程的语法 通用过程的创建 子过程的调用,返回第八章,8.2 函数过程,函数过程的定义 函数过程的调用,返回第八章,8.3 参数传递,按值传递 按地址传递,返回第八章,8.4 变量和过程的作用域,变量的作用域 过程的作用域,返回第八章,8.5 键盘事件过程,KeyDown和KeyUp键盘事件过程 KeyPress键盘事件过程,返回第八章,8.6 鼠标事件过程,鼠标事件过程语句 MouseDown鼠标事件过程 MouseMove鼠标事件过程 MouseUp鼠标事件过程,返回第八章,通用过

2、程的语法,通用过程的语法为: Private|Public Static Sub ) Exit Sub End Sub,返回8.1,通用过程的语法,说明: (1)Private|Public是可选的。它决定了此过程的作用域。与变量的声明相同,如没有指定,则默认为Public(公用的)。 (2)Static是可选的。它决定了此过程内的变量的生命周期。若没有指定,则在过程执行完毕以后,过程内的局部变量会消失。 (3)过程名与变量名的命名规则相同,长度不得超过40个字符。一个过程只能有一个唯一的过程名。在同一个模块内,同一名称不能既作Sub过程名,又作Function过程名。,返回8.1,通用过程的

3、语法,(4)Exit Sub语句使执行立即从一个子过程中退出,程序接着从调用该子过程的下一条语句继续执行。在子过程的任何位置都可以有Exit Sub语句,在一个子过程中可以有多个Exit Sub语句。 (5)类似于变量声明,指明从调用过程传送给过程的变量个数和类型,各变量之间用逗号间隔。其中的形式参数缺省为Variant,不过在使用时,最好还是将形式参数声明为一个数据类型。,返回8.1,通用过程的语法,(6)中出现的参数称为形式参数,简称形参。它并不代表实际存在的变量,也没有固定的值。在调用此过程时,它被一确定的值代替。形参的名字并不重要,重要的是其所表示的关系和调用时所给定的实际参数。不能用

4、定长字符串变量或定长字符串数组作为形式参数。不过可以在Call语句中用简单定长字符串变量作为实际参数。在调用Sub过程之前,把它转换为变长字符串变量。,返回8.1,通用过程的语法,(7)在过程内,不能再定义过程,但可以调用其他Sub过程或Function过程。 (8)中形参的语法为: OptionalByVal | ByRef| ParamArray( ) As = 1)Optional表示参数不是必须的关键字。若使用该选项,则中的后续参数都必须是可选的,而且必须都使用Optional关键字声明。若使用了ParamArray,则任何参数都不能使用Optional。 2)ByVal表示该参数按值

5、传递,即在调用过程时,传递给过程的是参数的值。,返回8.1,通用过程的语法,3)ByRef表示该参数按地址传递,即在调用过程时,传递给过程的是参数在内存中的存储地址,也就是参数本身。它是Visual Basic6.0默认的传送参数的方式。 4)ParamArray只用于的最后一个参数,指明最后这个参数是一个Variant元素的Optional数组。使用ParamArray关键字可以提供任意数目的参数。ParamArray关键字不能与ByVal、ByRef或Option一起使用。 5)若变量名后加括号,就表示该参数是个数组。,返回8.1,通用过程的语法,6)代表传递给该过程的参数的数据类型,可以

6、是Byte、Boolean、Integer、Long、Currency、Single、Double、Date、String(只支持变长)、Object或Variant。若没有Optional选项则可以指定用户定义类型或对象类型。注意:若形参中的变量用声明了变量的数据类型,则实参中对应的变量也必须声明为相同的数据类型。 7)代表任何常数或常数表达式,只对Optional参数合法。若类型为Object,则显示的缺省值只能是Nothing。,返回8.1,通用过程的创建,建立通用过程有两种方法:一是直接在代码编辑器窗口中输入过程代码,一是使用“添加过程”对话框。 使用“添加过程”对话框方法如下: (1

7、)打开要添加过程的代码编辑器窗口。 (2)选择“工具”菜单中的“添加过程”菜单项,打开“添加过程”对话框。 (3)在“名称”文本框中输入过程名,从“类型”组中选择过程类型,从“范围”组中选择范围。 (4)单击“确定”按钮。,返回8.1,通用过程的创建,直接在代码编辑器窗口中输入 对于熟练的编程人员,可以直接在代码编辑器窗口中输入。在代码编辑器窗口中,把光标定位在已有过程的外面,按照规定的语法格式输入过程名和参数,系统会自动产生最后一行语句End Sub。,返回8.1,子过程的调用,每次调用子过程都会执行Sub与End Sub之间的语句序列。调用子过程有两种方法: (1)使用Call语句:Cal

8、l () (2)直接使用过程名: 说明: 是实际参数列表,参数之间用逗号间隔。 当用Call语句调用子过程时,其过程名后必须加括号。若有参数,则参数必须放在括号之内。 若省略Call关键字,则过程名后不能加括号。若有参数,则参数直接跟在过程名之后,参数与过程名之间用空格间隔,参数间用逗号间隔。,返回8.1,函数过程的定义,函数过程的定义与子过程的定义很相似。不同的是,函数过程可以返回一个值,因此要在定义中加入返回值类型说明。语法格式为: Private|Public Static Function As = Exit Function = End Function,返回8.2,函数过程的定义,

9、说明: (1)即函数过程的名字。 (2)As指定函数过程返回值的类型,可以是Integer、Long、Single、Double、Currency、String或Boolean。若无“As”,缺省的数据类型为Variant。 (3)在过程体中,可以使用一个或多个Exit Function语句退出函数。,返回8.2,函数过程的定义,(4)的值是函数返回的结果,在语法中通过赋值语句将其赋给。若在函数过程中省略“=”,则该过程返回一个默认值。数值函数过程返回0,字符串函数返回空字符串。因此,为了能使一个函数过程完成所指定的操作,通常要在过程中为函数名赋值。 (5)函数过程语法中其他部分与子过程相同。

10、 (6)与子过程一样,可以在“代码编辑器”窗口中直接输入代码来创建函数过程,也可以使用“添加过程”对话框来创建函数过程。只是在选择类型时,要选择“函数”。,返回8.2,函数过程的调用,函数过程的调用有如下两种方法: (1)把它看作一个数据,即直接放在赋值号右端。 (2)可直接作为参数出现在调用过程或函数中。,返回8.2,参数传递,程序在调用通用过程时,要把语句中的“实参”依次传递给被调用的“形参”,然后执行被调用过程中的语句。形参相当于过程中的过程级变量,参数传递相当于给变量赋值。过程结束后,程序返回到调用它的过程中继续执行。 Visual Basic6.0中,调用过程时,过程的参数有两种传递

11、方式: (1)按值传递(ByVal) (2)按地址传递(ByRef),返回8.3,按值传递,如果在声明过程时,形参使用关键字ByVal声明,则规定了在调用此过程时,该参数将按值传递。 当过程中某个参数被声明为按值传递,那么在调用该过程时,传递给该形参的只是调用语句中实参的值,即把调用语句中实参的值复制给子过程中的形参。若在子过程中改变了形参的值,不会影响到实参的值。当子过程结束并返回调用它的过程后,实参的值还是调用前的值。 若过程中的参数设定为按值传递,不要求调用时相应实参的类型与其一致,只要实参的值能够转换为形参的类型即可。,返回8.3,按地址传递,如果在声明过程时,形参使用关键字ByRef

12、声明,则规定了在调用此过程时,该参数将按地址传递,是默认方式。 当过程中某个参数被声明为按地址传递,那么在调用该过程时,传递给该形参的是实参的地址,即形参与实参使用相同内存单元。若在子过程中改变了形参的值,同时也改变了实参的值。当子过程结束并返回调用它的过程后,实参的值已经发生了变化。,返回8.3,变量的作用域,VB中,根据变量的作用域将变量分为三种: 过程级变量:又称局部变量。在一个过程的开始处声明,此变量只能在过程内使用。这是作用域最小的变量,使用关键字Dim或Static声明。 模块级变量:又称窗体变量。在“声明”部分声明,可以在某个窗体或模块中的所有过程内使用。它的作用域比局部变量大,

13、使用关键字Private或Dim声明。 全局变量:在“声明”部分进行声明,可以在工程的任何窗体及模块中使用。全局变量的作用域是最大的,使用关键字Public或Dim声明。,返回8.4,过程的作用域,在VB中,根据作用域的不同,可将过程分为模块级过程和全局过程。 模块级过程:是在某个模块内,用关键字Private定义的子过程或函数过程,这种过程只能被本模块内的过程调用,即其作用域为本模块。 全局过程:是在某个模块内,用关键字Public定义的子过程或函数过程,这种过程可被整个工程内的所有过程调用,即其作用域为整个工程。,返回8.4,过程的作用域,定义全局过程有如下两种方法: (1)在当前工程中添

14、加标准模块Module,在标准模块中用关键字Public定义通用过程,该过程可以被其他窗体中的过程直接调用。 (2)在某窗体中添加Public类型的通用过程,当其他窗体调用此过程时,需要在调用过程语句前添加窗体名,即: Call .,返回8.4,KeyDown和KeyUp键盘事件过程,当一个对象具有焦点时,按下(KeyDown)或松开(KeyUp)一个键时触发该事件。 KeyDown和KeyUp键盘事件过程语句格式为: Private Sub Object_KeyDown | KeyUp (KeyCode As Integer, Shift As Integer),返回8.5,KeyDown和

15、KeyUp键盘事件过程,说明: (1)Object:获得焦点的对象。窗体用“Form”,其他控件用控件名。 (2)Index:是一个整数。当对象为控件数组时,此参数是控件数组元素下标,用来唯一标识控件数组中的控件。 (3)KeyCode:键代码,如vbKeyF5(F5键),vbKeyHome(Home键)。可以使用3对象浏览器中的Visual Basic6.0对象库中的常数指定键代码。 (4)Shift:是一个位域参数,用一个3位二进制数表示键盘事件发生时,是否按下键盘上的Shift、Ctrl、Alt键。,返回8.5,KeyDown和KeyUp键盘事件过程,(5)KeyDown和KeyUp事件

16、用参数Keycode和Shift来区别每个字符的大写和小写。Keycode用来显示物理的键,即不区分字母的大写和小写。Shift用来显示Shift+key键的状态,即区分字母的大写和小写。 (6)KeyDown和KeyUp事件经常用于下列情况:扩展的字符键,如功能键等;定位键;键盘修饰和按键的组合;区别数字小键盘和常规数字键。 (7)下列情况不能引用KeyDown和KeyUp事件: 窗体有一个CommandBotton控件,且Defalt属性设置为True时的Enter键。 窗体有一个CommandBotton控件,且Cancle属性设置为True时的Esc键。,返回8.5,KeyPress键盘事件过程,当一个对象具有焦点时,当用户按下再松开一个ANSI键时触发该事件。KeyPress键盘事件过程语句格式如下: Private Sub Object_KeyPress(Index As Intrger, KeyAscii

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号