它由窗体模块标准模块和类模块组成VB程序代码就保存在窗体模

上传人:1537****568 文档编号:359548961 上传时间:2023-08-31 格式:PPT 页数:186 大小:6.66MB
返回 下载 相关 举报
它由窗体模块标准模块和类模块组成VB程序代码就保存在窗体模_第1页
第1页 / 共186页
它由窗体模块标准模块和类模块组成VB程序代码就保存在窗体模_第2页
第2页 / 共186页
它由窗体模块标准模块和类模块组成VB程序代码就保存在窗体模_第3页
第3页 / 共186页
它由窗体模块标准模块和类模块组成VB程序代码就保存在窗体模_第4页
第4页 / 共186页
它由窗体模块标准模块和类模块组成VB程序代码就保存在窗体模_第5页
第5页 / 共186页
点击查看更多>>
资源描述

《它由窗体模块标准模块和类模块组成VB程序代码就保存在窗体模》由会员分享,可在线阅读,更多相关《它由窗体模块标准模块和类模块组成VB程序代码就保存在窗体模(186页珍藏版)》请在金锄头文库上搜索。

1、在在第二章第二章我们介绍了我们介绍了VBVB应用程序(通常称为应用程序(通常称为工程)的组织结构,它由工程)的组织结构,它由窗体模块、标准模块和类窗体模块、标准模块和类模块模块组成。组成。VBVB程序代码就保存在窗体模块文件(程序代码就保存在窗体模块文件(.Frm.Frm)、标准模块文件()、标准模块文件(.Bas.Bas)或类模块文件)或类模块文件(.Cls.Cls)中。它们形成了工程的一种模块层次结)中。它们形成了工程的一种模块层次结构,如下图所示。构,如下图所示。第七章第七章过程和变量的作用域过程和变量的作用域7.1 概 述一个应用程序的组成结构7.1.1窗体模块窗体模块(文件扩展名为文

2、件扩展名为.FRM)窗窗体体模模块块。窗窗体体模模块块可可以以包包含含处处理理事事件件的的过过程程、通通用用过过程程以以及及变变量量、常常数数、类类型型和和外外部部过过程程的的窗窗体体级级声声明明。如如果果要要在在文文本本编编辑辑器器中中观观察察窗窗体体模模块块,则则还还会会看看到到窗窗体体及及其其控控件件的的描描述述,包包括括它它们们的的属属性性设设置置值值。写写入入窗窗体体模模块块的的代代码码是是该该窗窗体体所所属属的的具具体体应应用用程程序序专专用用的的;它它也也可可以以引引用用该该应应用程序内的其它窗体或对象。用程序内的其它窗体或对象。7.1.2标准模块标准模块(文件扩展名为文件扩展名

3、为BAS)它它们们可可以以包包含含变变量量、常常数数、类类型型、外外部部过过程程和和全全局局过过程程的的全全局局(在在整整个个应应用用程程序序范范围围内内有有效效的的)声声明明或或模模块块级级声声明明。写写入入标标准准模模块块的的代代码码不不必必绑绑在在特特定定的的应应用用程程序序上上,则则在在许许多多不不同同的的应应用用程程序序中可以重用标准模块。中可以重用标准模块。7.1.3类模块类模块(文件扩展名为文件扩展名为.CLS)在在VisualBasic中中类类模模块块是是面面向向对对象象编编程程的的基基础础。可可在在类类模模块块中中编编写写代代码码建建立立新新对对象象。这这些些新新对对象象可可

4、以以包包含含自自定定义义的的属属性性和和方方法法。实实际际上上,窗窗体体正正是是这这样样一一种种类类模模块块,在在其其上上可可安安放放控控件件,可可显示窗体窗口。显示窗体窗口。7.2过程的作用域过程的作用域Public|Private Sub 子过程名子过程名(形式参数列表形式参数列表).EndSub概念概念通通用用子子过过程程和和函函数数过过程程既既可可写写在在窗窗体体模模块块中中也也可可写写在在标标准准模模块块中中,在在定定义义时时可可选选用用关关键键字字PrivatePrivate(局局部部)和和PublicPublic(全局)(全局),来决定它们能被调用的范围。,来决定它们能被调用的范

5、围。1、窗体窗体/模块级过程:模块级过程:加加Private关键字的过程,只能被定义的窗体或模关键字的过程,只能被定义的窗体或模块中的块中的过程调用。过程调用。2、全局级过程:全局级过程:加加Public关键字关键字(或缺省)(或缺省)的过程,可供该应用程序的过程,可供该应用程序的所有窗体和所有标准模块中的过程调用。的所有窗体和所有标准模块中的过程调用。按过程的作用范围来划分,过程可分为:按过程的作用范围来划分,过程可分为:模块级过程模块级过程全局级过程全局级过程用例7.1来说明过程的作用域 总结归纳过程的定义及作用域如下表(教材总结归纳过程的定义及作用域如下表(教材Pg.163)几点说明:(

6、教材Pg.164)7.3 变量的作用域概述:概述:在VB中,由于可以在过程中和模块中声明变量,根据定义变量的位置和定义变量的语句不同,变量可以分为:局部变量(过程级变量)窗体/模块级变量(私有的模块级变量,能被本模块的所有过程和函数使用)全局级变量(公有的模块级变量)。7.3.1过程级变量过程级变量局部变量局部变量局部变量:局部变量:在过程内用声明的变量,只能在本过在过程内用声明的变量,只能在本过程中使用。程中使用。在过程内部使用在过程内部使用Dim或者或者Static关键字来关键字来声明的变量,只在声明它们的过程中才能被访问声明的变量,只在声明它们的过程中才能被访问或改变该变量的值,别的过程

7、不可访问。所以可或改变该变量的值,别的过程不可访问。所以可以在不同的过程中声明相同名字的局部变量而互以在不同的过程中声明相同名字的局部变量而互不影响。不影响。例:例:PrivateSubForm_Load()Dimn%n=10EndSubPrivateSubFrom_Click()Dimn%Print“n=“;nEndSub程序运行后单击窗体,其输出结果是什么?程序运行后单击窗体,其输出结果是什么?7.3.2窗体窗体/模块级变量模块级变量窗窗体体/模模块块级级变变量量:在在“通通用用声声明明”段段中中用用Dim语语句句或或用用Private语语句句声声明明的的变变量量,可可被被本本窗窗体体/模

8、模块块的的任任何何过过程程访访问。但其他模块却不能访问该变量。问。但其他模块却不能访问该变量。例如:在例如:在“通用声明通用声明”段声明如下变量段声明如下变量PrivatesAsStringDimaAsInteger,bAsSingle7.3.3全局变量全局变量 全局变量也称公有的模块级变量,在窗体模块或标准模块的顶部的“通用”声明段用Public关键字声明,它的作用范围是整个应用程序,即可被本应用程序的任何过程或函数访问。例如:Public a As Integer,b As single3种变量声明及使用规则如下表:种变量声明及使用规则如下表:一、公用一、公用变量与局部量与局部变量同名量同

9、名在不同过程中定义同名变量,它们互不影响,但若在一在不同过程中定义同名变量,它们互不影响,但若在一过程中定义使用了与全局变量同名的变量,则就应注意。过程中定义使用了与全局变量同名的变量,则就应注意。7.3.4关于多个变量同名关于多个变量同名注意:在过程中,如果定义了与模块级变量(在通注意:在过程中,如果定义了与模块级变量(在通用部分使用用部分使用Private或或Dim声明的变量),则在该过程内声明的变量),则在该过程内不能引用同名的模块级变量。例如,上面的例子中,如不能引用同名的模块级变量。例如,上面的例子中,如果将定义全局变量的语句果将定义全局变量的语句PublicTempAsIntege

10、r改为改为PrivateTempAsInteger则在则在Command1的单击事件中就的单击事件中就不使用模块级的不使用模块级的Temp变量。变量。Public Temp As Integer 定义全局变量定义全局变量Private Sub Form_Load()Temp=1 将全局变量将全局变量Temp 的值设置成的值设置成 1End SubPrivate Sub Command1_Click()Dim Temp As Integer 定义局部变量定义局部变量Temp=2 将局部变量将局部变量Temp 的值设置成的值设置成 2 Print temp=;Temp Print temp=;Fo

11、rm1.TempEnd SubPrivate Sub Command2_Click()Print temp=;Temp End Sub二、全局二、全局变量同名量同名 如如果果不不同同模模块块中中的的全全局局变变量量使使用用同同一一名名字字,则则通通过过同同时时引引用用模模块块名名和和变变量量名名就就可可以以在在代代码码中中区区分分它它们们。例例如如,如如果果有有一一个个在在 Form1 和和 Module1 中中都都声声明明了了公公用用的的 Integer 变变量量 intX,则则把把它它们们作作为为 Module1.intX 和和Form1.intX 来来引引用用便便得得到到正正确确值值。也

12、也就就是是说说如如果果不不同同模模块块中中的的全全局局变变量量使使用用同同一一名名字字,引引用用时时就就需需要要使使用用“模模块块名名.变变量量名名”的的形形式式来来区分它们。区分它们。7.3.5静态变量静态变量除作用域之外,变量还有存活期,在这一期间变量能除作用域之外,变量还有存活期,在这一期间变量能够保持它们的值。够保持它们的值。在应用程序的存活期内一直保持在应用程序的存活期内一直保持模块级变量模块级变量和和全局变全局变量量的值。但是,对于的值。但是,对于Dim声明的局部变量声明的局部变量仅当过程执行期仅当过程执行期间存在,当一个过程执行完毕,它的局部变量的值就已经间存在,当一个过程执行完

13、毕,它的局部变量的值就已经不存在,而且不存在,而且变量所占据的内存也被释放变量所占据的内存也被释放。当下一次执行。当下一次执行该过程时,它的所有局部变量将重新初始化。该过程时,它的所有局部变量将重新初始化。概念概念局部变量的存活期由其定义的关键词来决定。局部变量的存活期由其定义的关键词来决定。局部变量声明:局部变量声明:Dim声明:声明:随过程的调用而分配存贮单元,变量的初随过程的调用而分配存贮单元,变量的初始化;过程体结束,变量的内容自动消失,存贮单元释放。始化;过程体结束,变量的内容自动消失,存贮单元释放。Static声明声明,每次调用过程,变量保持上次调用结束时,每次调用过程,变量保持上

14、次调用结束时的值。的值。声明形式:声明形式:Static变量名变量名AS类型类型StaticFunction函数过程名函数过程名(参数列表参数列表)As类型类型StaticSub子过程名子过程名(参数列表参数列表)注意:过程名前加注意:过程名前加Static,表示该过程内的,表示该过程内的局部变量都是静态变量。局部变量都是静态变量。例例7.2 有一个人编了下面一段程序,想用变量n记录单击窗体的次数。Private Sub Form_Click()Dim n As Integer n=n+1 Print 已单击次数:;n&次End Sub分析程序运行后多次单击窗体的输出结果:要记录单击窗体次数,

15、如何实现?并比较使用模块要记录单击窗体次数,如何实现?并比较使用模块变量和静态变量的差别。变量和静态变量的差别。例7.3 教材P168PrivateSubForm_Click()Dimi%,isum%Fori=1To5isum=sum(i)Printisum,NextiEndSubPrivateFunctionsum(nAsInteger)DimjAsIntegerj=j+nsum=jEndFunction12345StaticjAsInteger结果如何结果如何?补充例题:补充例题:7.4 多重窗体与多模块程序设计一一个个稍稍微微复复杂杂的的应应用用程程序序,不不仅仅有有多多个个窗窗体体,还

16、还可可能能有标准模块和类模块,如下图所示。有标准模块和类模块,如下图所示。本节介绍在多模块程序本节介绍在多模块程序中,关于启动对象的设置、中,关于启动对象的设置、窗体的加载与卸载、窗体窗体的加载与卸载、窗体的加载与卸载时的事件、的加载与卸载时的事件、多模块间数据的传递等。多模块间数据的传递等。7.4.1设置启动对象设置启动对象在在程程序序运运行行时时,首首先先被被加加载载并并执执行行的的对对象象,称称为为程程序序的的启启动动对对象象。一一个个程程序序的的启启动动对对象象可可以以是是一一个个窗窗体体,也也可可以以是是标标准准模模块块中中名名为为Main的的自自定定义义Sub过过程程。缺缺省省情情况况下下,第一个创建的窗体被指定为启动对象。第一个创建的窗体被指定为启动对象。1、设置方法:从“工程”菜单中的最后一项“*属性”,在“*工程属性”对话框中进行设置。2、如果设置从主过程Main()启动,则必须在标准模块中编写Main()过程代码。例:Pg170.7.4.2窗体的加载与卸载过程窗体的加载与卸载过程当一个窗体要显示在屏幕之前,必须先建立,当一个窗体要显示在屏幕之前,必须先建立,接着被装

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

当前位置:首页 > 医学/心理学 > 基础医学

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