Visual Basic程序设计 教学课件 ppt 作者 刘瑞新 VB8

上传人:E**** 文档编号:89183846 上传时间:2019-05-20 格式:PPT 页数:28 大小:328.50KB
返回 下载 相关 举报
Visual Basic程序设计 教学课件 ppt 作者 刘瑞新 VB8_第1页
第1页 / 共28页
Visual Basic程序设计 教学课件 ppt 作者 刘瑞新 VB8_第2页
第2页 / 共28页
Visual Basic程序设计 教学课件 ppt 作者 刘瑞新 VB8_第3页
第3页 / 共28页
Visual Basic程序设计 教学课件 ppt 作者 刘瑞新 VB8_第4页
第4页 / 共28页
Visual Basic程序设计 教学课件 ppt 作者 刘瑞新 VB8_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《Visual Basic程序设计 教学课件 ppt 作者 刘瑞新 VB8》由会员分享,可在线阅读,更多相关《Visual Basic程序设计 教学课件 ppt 作者 刘瑞新 VB8(28页珍藏版)》请在金锄头文库上搜索。

1、本章主要内容: Sub过程 Function过程 参数传递,第8章 过 程,8.1 Sub过程 VB的Sub过程分为事件过程和通用过程两大类: 事件过程:当发生某个事件时,对该事件做出响应的程序段,它是VB应用程序的主体。 通用过程:有时多个不同的事件过程可能需要使用同一段程序代码,这时可将这段代码独立出来,编写为一个共用的过程,称为通用过程,它独立于事件过程之外,可供其他事件过程调用。,8.1.1 事件过程与通用过程 1. 事件过程 控件事件过程的语法为: Private Sub 控件名_事件名(形参表) 语句组 End Sub 窗体事件过程的语法为: Private Sub Form_事件

2、名(形参表) 语句组 End Sub,系统就会在“代码编辑器”窗口中生成该对象所选事件的过程模板,如图8-1所示,在Sub和End Sub语句之间输入代码。,事件过程名是由VB自动给出的,如Command1_Click。因此,在为新控件或对象编写事件代码之前,应先设置它的Name属性,如图8-2将Command1的Name属性设置为Cmdopen,则事件过程名就自动给出为Cmdopen_Click。,2. 通用过程 通用过程不与任何特定的事件相联系,只能由别的过程来调用,它可以存储在窗体或标准模块中。 建立通用过程的主要原因是,有几个不同的事件过程要执行相同的动作。这时我们将公共语句放入分离开

3、的过程(通用过程),并由事件过程来调用它,就不必重复代码,也容易维护应用程序。 8.1.2 通用过程的创建 建立通用过程有两种方法:一是直接在“代码”编辑窗口中输入过程代码,二是使用“添加过程”对话框。,1. 在“代码”编辑窗口中输入 在“代码”编辑窗口中,把光标定位在已有过程的外面。然后按如下格式输入通用过程: Private | Public Static Sub 过程名( 形参表 ) 语句组 Exit Sub 语句组 End Sub 形参表中形参的语法为: Optional ByVal | ByRef | ParamArray 变量名( ) As 类型 =缺省值 . 其中,Optiona

4、l表示参数不是必需的关键字。如果使用了该选项,则形参表中的后续参数都必须是可选的,而且必须都使用Optional关键字声明。如果使用了ParamArray,则任何参数都不能使用Optional。,ByVal表示该参数按值传递。 ByRef表示该参数按地址传递。ByRef是VB的缺省选项。 ParamArray只用于形参表的最后一个参数,指明最后这个参数是一个Variant元素的Optional数组。使用ParamArray关键字可以提供任意数目的参数。ParamArray关键字不能与ByVal、ByRef或Optional一起使用。 类型代表传递给该过程的参数的数据类型,可以是Byte、Boo

5、lean、Integer、Long、Currency、Single、Double、Date、String(只支持变长)、Object或Variant。如果没有选择参数Optional,则可以指定用户定义类型或对象类型。注意:如果形式参数中的变量用类型声明了变量的数据类型,则实际参数中的对应变量也必须声明为相同的数据类型。 缺省值代表任何常数或常数表达式。只对Optional参数合法。如果类型为Object,则显式的缺省值只能是Nothing。,2. 使用“添加过程”对话框 使用“添加过程”对话框建立过程的方法为: 打开要添加过程的代码编辑窗口。 执行“工具”菜单中的“添加过程”命令,打开“添加

6、过程”对话框,如图8-3所示。 在“名称”文本框中输入过程名。从“类型”组中选择过程类型。从“范围”组中选择范围,相当于使用Public或Private关键字。 单击“确定”按钮,在代码窗口中显示情况如图8-4所示。,使用本方法,建立一个过程模板,程序员可以通过修改它建立自己的过程。,8.1.3 通用过程的调用 调用Sub过程有两种方法: = 使用Call语句:Call 过程名( 实参表 ) = 直接使用过程名:过程名 实参表 说明: 实参表是实际参数列表,参数与参数之间要用逗号分隔。 当用Call语句调用执行过程时,其过程名后必须加括号,若有参数,则参数必须放在括号之内。 若省略Call关键

7、字,则过程名后不能加括号,若有参数,则参数直接跟在过程名之后,参数与过程名之间用空格隔开,参数与参数之间用逗号分隔。,例如,以下两个语句都调用了名为aaa的过程: aaa 12 Call aaa(12) 其中的12是实际参数。实际参数可以是常量、变量、表达式。如: M=12 Call aaa(M) 【例8-1】 【例8-2】,8.2 Function过程 前面介绍了Sub过程,它不返回值,可以作为独立的基本语句调用。而Function过程要返回一个值,通常出现在表达式中。 VB包含了许多内置的或内部的函数,如Sqr、Cos或Chr。用户在编写程序时,只需写出一个函数名并给定参数就能得出函数值。

8、当在程序中需要多次用到某一公式或要处理某一函数关系,而又没有现成的内部函数可以使用时,VB允许使用Function语句编写用户自定义的Function(函数)过程。Function过程与内部函数一样,可以在程序或函数嵌套中使用。,8.2.1 Function过程的定义 与Sub过程一样,Function过程也是一个独立的过程,可读取参数、执行一系列语句并改变其参数的值。与Sub过程不同的是,Function过程可返回一个值。Function过程的语法是: Private | Public Static Function 函数名( 形参表 ) As 类型 语句组 函数名=表达式 Exit Fun

9、ction 语句组 函数名=表达式 End Function,说明: 与Sub过程一样,可以在“代码”编辑窗口中直接输入来创建Function过程,也可以使用“添加过程”对话框来定义Function过程。只是在选择过程的类型时,要选择“函数”。比如,要创建一个用于求某个数阶乘的通用函数Fact,可在“添加过程”对话框的“名称”输入框中键入过程名,然后在类型选择栏中选择“函数”,如图8-10左所示,最后单击“确定”按钮,即可产生如图8-10右所示格式的Function过程的框架。,图8-10 定义函数过程,【例8-3】编写求矩形面积的自定义函数。 在代码窗口中直接输入下面的代码: Public

10、Function area(a As Integer, b As Integer) As Long area = a * b 计算并返回函数值 End Function 【例8-4】计算任意整数n的阶乘的Function过程fact: Function fact(x As Integer) As Long Dim p As Long, i As Integer p = 1 For i = 1 To x p = p * i 累乘 Next i fact = p 返回函数值 End Function,使用声明语句建立一个变量后,VB自动将数值类型的变量赋初值0,将字符或Variant类型的变量赋空

11、串,将布尔型的变量赋False。 使用变量时,VB会自动转换变量值的类型,使变量的值与声明语句中的名字相匹配。例如,声明变量为: Dim Ct As Integer 当为该变量赋值时: Ct = 1.8 数1.8为单精度型Single 变量Ct自动将1.8四舍五入转换为整型数2。,8.2.2 Function过程的调用 1. 直接调用 Function过程的调用比较简单,可以像使用VB内部函数一样来调用Function过程,即在表达式中写上它的名字。例如调用例8-3中计算矩形面积的Function过程,用下面代码: Print area(5, 6) 2. 用Call语句调用 与调用Sub过程一

12、样调用Function过程。下面的代码调用了同一个Function过程。 Call area (2, 4) area 2, 4 当用这种方法调用函数时,VB放弃返回值。,3. 无参函数的调用 函数可以没有参数,在调用无参函数时不发生虚实结合。调用无参函数得到一个固定的值,如下述无参函数: Function F2 F2 = “Follow me.“ End Function 可如下调用: Debug.Print F2 【例8-5】利用Function函数求矩形面积。 直接调用例8-3的area函数,代码如下: Private Sub Form_Load() Show Label3.Caption

13、 = area(5, 6) 通过实参,调用area函数,输出 End Sub,如图8-11左所示输入函数代码和事件过程代码。运行结果如图8-11右所示。,图8-11 利用Function函数求矩形面积 【例8-6】 【例8-7】 【例8-8】,8.2.3 查看过程 1. 查看当前模块中的过程 为了查看现有的通用过程或Function过程,在“代码编辑器”窗口的对象框中选择“通用”,然后在过程框中选择过程名。或者,为查看事件过程,在“代码编辑器”窗口的对象框中选择适当的对象,然后在过程框中选择事件。 2. 查看其他模块中的过程 在“视图”菜单中选取“对象浏览器”,在“工程库”框中选择工程,在“类

14、模块”列表中选择模块,并在“成员”列表中选择过程,单击“查看定义”按钮,即可调出相应的代码,如图8-15所示。,8.3 参数传递 过程与外界的数据传递有两种方式: l 通过非局部变量。 l 通过参数。 8.3.1 形式参数与实际参数 1. 形参表 形参表中的各个变量之间用逗号分隔,形参可以后面跟有左、右圆括号的数组名或除定长字符串之外的合法变量名。 在形参表中只能用如x As String之类的变长字符串作为形参,不能用如x As String*10之类的定长字符串作为形参。但定长字符串可以作为实际参数传递给过程。,2. 实参表 实参表中的各项用逗号隔开,实参可以是常量,表达式,合法的变量名或

15、后面跟有左、右括号的数组名。 3. 形参与实参的对应关系 形参与实参的对应关系为:,8.3.2 传值与传址 1. 传址 传址就是让过程根据变量的内存地址去访问实际变量的内容,即形参与实参使用相同的内存地址单元,这样通过子过程就可以改变变量本身的值。 在传址调用时,实参必须是变量,常量或表达式无法传址。 【例8-9】,2. 传值 当要求变量按值传送时,可以用下面的方法之一: l 把变量变成一个表达式。把变量转换成表达式的最简单的方法就是把它放在括号内。例如把变量用括号括起来,把它变为一个表达式,如“(a)”。 l 定义过程时用ByVal关键字指出参数是按值来传递的,例如: Sub PostAc( ByVal x As Integer ) x = x + 1 这里放语句 End Sub 这里的形参x前有关键字ByVal,调用时以传值方式传送实参。在传值方式下,VB为形参分配内存空间,并将相应的实参值复制给各形参。 【例8-10】,8.3.3 使用参数 1. 使用可选的参数 在过程的形参表中列入Optional关键字,就可以指定过程的形参为可选的。如果指定某一参数可选,则此参数后面的其他参数也必是可选的,并且每个参数都要用Optional关键字来声明。 在未提供某个可选参

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

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

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