vb程序设计第七章_第1页
vb程序设计第七章_第2页
vb程序设计第七章_第3页
vb程序设计第七章_第4页
vb程序设计第七章_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、abgfdce 将程序分割成较小的逻辑部件就可以简化程序将程序分割成较小的逻辑部件就可以简化程序设计任务,称这些部件为过程,用过程编程有设计任务,称这些部件为过程,用过程编程有两大好两大好处处: 过程可使程序划分成离散的逻辑单元,每个单元都过程可使程序划分成离散的逻辑单元,每个单元都比无过程的整个程序容易调试。比无过程的整个程序容易调试。一个程序中的过程,往往不必修改或只需稍作改动一个程序中的过程,往往不必修改或只需稍作改动,便可以成为另一个程序的构件。,便可以成为另一个程序的构件。在在 Visual BasicVisual Basic中最常使用下列中最常使用下列两种过程两种过程: Sub S

2、ub 过程不返回值过程不返回值, ,称为称为子过程子过程。Function Function 过程返回值过程返回值, ,称为称为函数过程函数过程。 7.1 Sub7.1 Sub子过程子过程SubSub过程分为过程分为事件过程事件过程和和通用过程通用过程。 1. 1. 事件过程事件过程 当当 Visual Basic Visual Basic 中的对象对一个事件中的对象对一个事件的发生作出认定时,便自动用相应于事件的名的发生作出认定时,便自动用相应于事件的名字调用该事件的过程。因为字调用该事件的过程。因为名字在对象和代码名字在对象和代码之间建立了联系之间建立了联系,所以说,所以说事件过程是附加在

3、窗事件过程是附加在窗体和控件上的体和控件上的。一个。一个控件控件的的事件过程事件过程将将控件的控件的(在(在 Name Name 属性中规定的)属性中规定的)实际名字实际名字、下划线下划线 (“_”) (“_”) 和和事件名事件名组合起来。组合起来。 2. 2. 通用过程通用过程 通用过程通用过程告诉应用程序如何完成告诉应用程序如何完成一项指定一项指定的任务的任务。一旦确定了通用过程,就必须专由应用。一旦确定了通用过程,就必须专由应用程序来调用。程序来调用。建立通用建立通用目的目的之一就是,几个不同的事件过程也之一就是,几个不同的事件过程也许要执行同样的动作。将许要执行同样的动作。将公共语句公

4、共语句放入一过程(放入一过程(通用过程)并通用过程)并由事件过程来调用由事件过程来调用它,诚为编程上它,诚为编程上策。这样一来就策。这样一来就不必重复代码,也容易维护应用不必重复代码,也容易维护应用程序程序。SwapSwap(x,y) x,y) 子过程的定义子过程的定义Public Sub Swap(x,y)Public Sub Swap(x,y)Dim tDim tt=xt=xx=yx=yy=ty=tEnd SubEnd Sub主调程序调用主调程序调用SwapSwap子过程子过程Private Sub Form_Click()Private Sub Form_Click()Dim a,bDi

5、m a,ba=10a=10b=20b=20Swap a,bSwap a,bEnd SubEnd SubPrint “a=”;a,“b=”;bPrint “a=”;a,“b=”;b Private|PublicStatic Sub Exit Sub End SubPrivate|PublicStatic Function AS = Exit Function End Function子过程与函数过程的区别及注意事项:子过程与函数过程的区别及注意事项:(1)子过程的适用范围大于函数过程。用函数)子过程的适用范围大于函数过程。用函数过程定义的,肯定能用子过程定义,反之则不一过程定义的,肯定能用子过程

6、定义,反之则不一定。定。(2)函数过程有返回值,过程名也就有类型,)函数过程有返回值,过程名也就有类型,同时在函数体内必须对函数过程名赋值;而子过同时在函数体内必须对函数过程名赋值;而子过程没有值,也就没有类型,且不能在子过程体内程没有值,也就没有类型,且不能在子过程体内对子过程名赋值。对子过程名赋值。3.3.查看过程查看过程通用过程通用过程是程序中的公共代码段,可供各个事件过是程序中的公共代码段,可供各个事件过程调用,因此编写程序时经常要查看当前模块或其他程调用,因此编写程序时经常要查看当前模块或其他模块中有哪些通用过程。模块中有哪些通用过程。要查看要查看当前模块当前模块中有哪些中有哪些Su

7、bSub过程和过程和FunctionFunction过程,过程,可以在代码窗口查看。可以在代码窗口查看。如果要查看的是如果要查看的是其他模块其他模块中的过程,可以选择中的过程,可以选择“视视图图”菜单中的菜单中的“对象浏览器对象浏览器”命令。命令。调用过程:调用过程:Call testsub(18, cj(), Test ) Call testsub(18, cj(), Test ) 定义过程定义过程:Sub testsub(r As Integer, aa() As Single, cc As String) Sub testsub(r As Integer, aa() As Single,

8、 cc As String) 实际参数实际参数形式参数形式参数Public Sub Swap1(Public Sub Swap1(ByValByVal x As Integer, x As Integer,ByValByVal y As Integer y As Integer) ) Dim t As Ineger Dim t As Ineger t=x:x=y:y=t t=x:x=y:y=tEnd SubEnd SubPublic Sub Swap2( x As Integer, y As IntegerPublic Sub Swap2( x As Integer, y As Integer

9、) ) Dim t As Ineger Dim t As Ineger t=x:x=y:y=t t=x:x=y:y=tEnd SubEnd SubPrivate Sub Command1_click()Private Sub Command1_click() Dim a As Integer,b As Integer Dim a As Integer,b As Integer a=10:b=20 a=10:b=20 Swap1 a,b Swap1 a,b Print “a=”;a,”b=”;b Print “a=”;a,”b=”;b a=10:b=20 a=10:b=20 Swap2 a,b

10、Swap2 a,b Print “a=”;a, “b=”;b Print “a=”;a, “b=”;bEnd SubEnd Sub主程序调用Sprg1Sprg1End SubEnd SubSprg1Sprg1调用Sprg2Sprg2End SubEnd SubSprg2Sprg2End SubEnd Sub过程的嵌套图解过程的嵌套图解1981 1n n (n-1)!(n-1)!n=0n=0n0n0n!=n!=1 1n n* *fact(n-1)fact(n-1)n=0n=0n0n0fact(n)=fact(n)=Fact(4)=4Fact(4)=4* *fact(3)fact(3)Fact(3

11、)=3Fact(3)=3* *fact(2)fact(2)Fact(2)=2Fact(2)=2* *fact(1)fact(1)Fact(1)=1Fact(1)=1* *fact(0)fact(0)Fact(0)=1Fact(0)=1Fact(4)=4Fact(4)=4* *6 6Fact(3)=3Fact(3)=3* *2 2Fact(2)=2Fact(2)=2* *1 1Fact(1)=1Fact(1)=1* *1 1边界条件边界条件VBVB应用程序应用程序. .VBPVBP窗体模块窗体模块 . .FrmFrm类模块类模块 . .ClsCls标准模块标准模块 . .BasBas函数过程函数

12、过程 (Function)(Function) Sub Sub过程过程 事件过程事件过程 SubSub过程过程函数过程函数过程(Function)(Function)7.4.1.1 7.4.1.1 窗体模块窗体模块由于由于 Visual Basic Visual Basic 应用程序是基于应用程序是基于对象对象的,的,所以应用程序的代码结构就是该程序在屏幕上物所以应用程序的代码结构就是该程序在屏幕上物理表示的模型。根据定义,理表示的模型。根据定义,对象包含数据和代码对象包含数据和代码。在屏幕上看到的窗体代表属性,这些属性定义。在屏幕上看到的窗体代表属性,这些属性定义了窗体的外观和内在特性。了窗

13、体的外观和内在特性。应用程序中的每个窗应用程序中的每个窗体都有一个包含其代码的相关的窗体模块体都有一个包含其代码的相关的窗体模块(文件(文件扩展名为扩展名为 . .FRMFRM)。)。每个每个窗体模块窗体模块都包含:都包含:事件过程事件过程,即代码部分,其中有为响应特定,即代码部分,其中有为响应特定事件而执行的指令;事件而执行的指令;控件控件。在窗体模块中,对窗体上的每个控件。在窗体模块中,对窗体上的每个控件都有一个对应的事件过程集;都有一个对应的事件过程集;窗体模块还可包含窗体模块还可包含通用过程通用过程,它对来自任何,它对来自任何事件过程的调用都作出响应。事件过程的调用都作出响应。窗体变量

14、的说明、外部过程的窗体级声明窗体变量的说明、外部过程的窗体级声明。 7.4.1.2 7.4.1.2 标准模块标准模块 标准模块(具有标准模块(具有 . .bas bas 文件扩展名)可以文件扩展名)可以包含类型、常数、变量、外部过程和公共过包含类型、常数、变量、外部过程和公共过程的公共的或模块级的声明程的公共的或模块级的声明。可将那些可将那些与特定窗体或控件无关的代码与特定窗体或控件无关的代码放放入另一类型的模块入另一类型的模块 标准模块(文件扩展名标准模块(文件扩展名为为 . .BAS BAS )中。如果一个过程可能用来响应中。如果一个过程可能用来响应几个不同对象中的事件,应该将这个过程放几

15、个不同对象中的事件,应该将这个过程放在标准模块中,而不应在每一个对象的事件在标准模块中,而不应在每一个对象的事件过程中重复相同的代码。过程中重复相同的代码。工程菜单工程菜单添加模块添加模块打开添加模块对话框打开添加模块对话框选择新建选选择新建选项卡项卡 双击模块图标(单击打开按钮)双击模块图标(单击打开按钮)在属性窗口给在属性窗口给标准模块命名(标准模块命名(NameName)在标准模块的代码窗口中编写代在标准模块的代码窗口中编写代码。码。添加标准模块的步骤添加标准模块的步骤:7.4.1.3 7.4.1.3 类模块类模块类模块(具有类模块(具有 . .cls cls 文件扩展名)与窗体模块文件

16、扩展名)与窗体模块类似,只是类似,只是没有可见的用户界面没有可见的用户界面。可以使用类模。可以使用类模块创建含有方法和属性代码的自己的对象。块创建含有方法和属性代码的自己的对象。用类模块(文件扩展名为用类模块(文件扩展名为 . .CLS CLS )创建对象,创建对象,这些对象可被应用程序内的过程调用。这些对象可被应用程序内的过程调用。标准模块标准模块只包含代码,而类模块既包含代码又包含数据只包含代码,而类模块既包含代码又包含数据,可视为没有物理表示的控件。可视为没有物理表示的控件。 全局变量全局变量窗体窗体/ /模块级变量模块级变量局部变量局部变量静态变量的声明形式如下:静态变量的声明形式如下

17、:3 3 调用其他模块中的过程的格式调用其他模块中的过程的格式调用调用窗体过程窗体过程的的格式格式: Call Call 窗体名窗体名. .sub sub 过程名过程名( (参数表参数表) ) 窗体名窗体名. .subsub过程名过程名 参数表参数表 窗体名窗体名. .function function 过程名过程名( (参数表参数表) )调用调用标准模块标准模块中的过程的中的过程的格式格式: Call Call 模块名模块名. .sub sub 过程名过程名( (参数表参数表) ) 模块名模块名. .subsub过程名过程名 参数表参数表 模块名模块名. .function function

18、 过程名过程名( (参数表参数表) )7.5 7.5 多窗体与多窗体与Sub MainSub Main过程过程 在一个在一个VBVB应用程序中,允许创建多个窗体,多应用程序中,允许创建多个窗体,多个标准标块和类模块。本节简要地讨论有关多窗体个标准标块和类模块。本节简要地讨论有关多窗体编程的有问题。编程的有问题。 7.5.1 7.5.1 多窗体处理多窗体处理 添加窗体添加窗体 删除窗体删除窗体 保存窗体保存窗体 设置启动窗体设置启动窗体 有关语句和方法有关语句和方法 P P2092097.5.2 7.5.2 Sum MainSum Main过程过程 有时在程序启动时不需要加载任何窗体,而是首先有时在程序启动时不需要加载任何窗体,而是首先执行一段程序代码,例如,需要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论