版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一个应用程序的组成结构第一页,共29页。第一页,共29页。7.1.1窗体模块(文件扩展名为.FRM)
窗体模块。窗体模块可以包含处理事件的过程、通用过程以及变量、常数、类型和外部过程的窗体级声明。如果要在文本编辑器中观察窗体模块,则还会看到窗体及其控件的描述,包括它们的属性设置值。写入窗体模块的代码是该窗体所属的具体应用程序专用的;它也可以引用该应用程序内的其它窗体或对象。第二页,共29页。第二页,共29页。7.1.2标准模块(文件扩展名为.BAS)它们可以包含变量、常数、类型、外部过程和全局过程的全局(在整个应用程序范围内有效的)声明或模块级声明。写入标准模块的代码不必绑在特定的应用程序上,则在许多不同的应用程序中可以重用标准模块。第三页,共29页。第三页,共29页。7.1.3类模块(文件扩展名为.CLS)在VisualBasic中类模块是面向对象编程的基础。可在类模块中编写代码建立新对象。这些新对象可以包含自定义的属性和方法。实际上,窗体正是这样一种类模块,在其上可安放控件,可显示窗体窗口。第四页,共29页。第四页,共29页。7.2过程的作用域[Public|Private]Sub子过程名([形式参数列表])…..EndSub概念通用子过程和函数过程既可写在窗体模块中也可写在标准模块中,在定义时可选用关键字Private(局部)和Public(全局),来决定它们能被调用的范围。第五页,共29页。第五页,共29页。1、窗体/模块级过程:
加Private关键字的过程,只能被定义的窗体或模块中的过程调用。2、全局级过程:
加Public关键字(或缺省)的过程,可供该应用程序的所有窗体和所有标准模块中的过程调用。按过程的作用范围来划分,过程可分为:
模块级过程
全局级过程用例7.1来说明过程的作用域第六页,共29页。第六页,共29页。总结归纳过程的定义及作用域如下表(教材Pg.163)几点说明:(教材Pg.164)第七页,共29页。第七页,共29页。7.3变量的作用域概述:在VB中,由于可以在过程中和模块中声明变量,根据定义变量的位置和定义变量的语句不同,变量可以分为:局部变量(过程级变量)窗体/模块级变量(私有的模块级变量,能被本模块的所有过程和函数使用)全局级变量(公有的模块级变量)。第八页,共29页。第八页,共29页。7.3.1过程级变量——局部变量局部变量:在过程内用声明的变量,只能在本过程中使用。在过程内部使用Dim或者Static关键字来声明的变量,只在声明它们的过程中才能被访问或改变该变量的值,别的过程不可访问。所以可以在不同的过程中声明相同名字的局部变量而互不影响。第九页,共29页。第九页,共29页。例:PrivateSubForm_Load()Dimn%n=10EndSubPrivateSubFrom_Click()Dimn%Print“n=“;nEndSub程序运行后单击窗体,其输出结果是什么?第十页,共29页。第十页,共29页。7.3.2窗体/模块级变量窗体/模块级变量:在“通用声明”段中用Dim语句或用Private语句声明的变量,可被本窗体/模块的任何过程访问。但其他模块却不能访问该变量。例如:在“通用声明”段声明如下变量PrivatesAsStringDimaAsInteger,bAsSingle第十一页,共29页。第十一页,共29页。7.3.3全局变量
全局变量也称公有的模块级变量,在窗体模块或标准模块的顶部的“通用”声明段用Public关键字声明,它的作用范围是整个应用程序,即可被本应用程序的任何过程或函数访问。例如:PublicaAsInteger,bAssingle第十二页,共29页。第十二页,共29页。3种变量声明及使用规则如下表:第十三页,共29页。第十三页,共29页。一、公用变量与局部变量同名在不同过程中定义同名变量,它们互不影响,但若在一过程中定义使用了与全局变量同名的变量,则就应注意。7.3.4关于多个变量同名注意:在过程中,如果定义了与模块级变量(在通用部分使用Private或Dim声明的变量),则在该过程内不能引用同名的模块级变量。例如,上面的例子中,如果将定义全局变量的语句PublicTempAsInteger改为PrivateTempAsInteger则在Command1的单击事件中就不使用模块级的Temp变量。第十四页,共29页。第十四页,共29页。
PublicTempAsInteger'定义全局变量PrivateSubForm_Load()Temp=1'将全局变量Temp的值设置成1EndSubPrivateSubCommand1_Click()DimTempAsInteger'定义局部变量Temp=2'将局部变量Temp的值设置成2Print"temp=";TempPrint"temp=";Form1.TempEndSubPrivateSubCommand2_Click()Print"temp=";TempEndSub第十五页,共29页。第十五页,共29页。二、全局变量同名如果不同模块中的全局变量使用同一名字,则通过同时引用模块名和变量名就可以在代码中区分它们。例如,如果有一个在Form1和Module1中都声明了公用的Integer变量intX,则把它们作为MX和FX来引用便得到正确值。也就是说如果不同模块中的全局变量使用同一名字,引用时就需要使用“模块名.变量名”的形式来区分它们。第十六页,共29页。第十六页,共29页。7.3.5静态变量除作用域之外,变量还有存活期,在这一期间变量能够保持它们的值。在应用程序的存活期内一直保持模块级变量和全局变量的值。但是,对于Dim声明的局部变量仅当过程执行期间存在,当一个过程执行完毕,它的局部变量的值就已经不存在,而且变量所占据的内存也被释放。当下一次执行该过程时,它的所有局部变量将重新初始化。概念局部变量的存活期由其定义的关键词来决定。第十七页,共29页。第十七页,共29页。局部变量声明:
Dim声明:随过程的调用而分配存贮单元,变量的初始化;过程体结束,变量的内容自动消失,存贮单元释放。
Static声明,每次调用过程,变量保持上次调用结束时的值。声明形式:
Static变量名[AS类型] StaticFunction函数过程名([参数列表])[As类型]StaticSub子过程名[(参数列表)]
注意:过程名前加Static,表示该过程内的局部变量都是静态变量。第十八页,共29页。第十八页,共29页。例7.2
有一个人编了下面一段程序,想用变量n记录单击窗体的次数。PrivateSubForm_Click()DimnAsIntegern=n+1Print"已单击次数:";n&"次"EndSub分析程序运行后多次单击窗体的输出结果:要记录单击窗体次数,如何实现?并比较使用模块变量和静态变量的差别。例7.3教材P168第十九页,共29页。第十九页,共29页。PrivateSubForm_Click()Dimi%,isum%Fori=1To5 isum=sum(i) Printisum,NextiEndSubPrivateFunctionsum(nAsInteger)
DimjAsInteger j=j+nsum=jEndFunction12345StaticjAsInteger结果如何?
补充例题:第二十页,共29页。第二十页,共29页。7.4多重窗体与多模块程序设计一个稍微复杂的应用程序,不仅有多个窗体,还可能有标准模块和类模块,如下图所示。本节介绍在多模块程序中,关于启动对象的设置、窗体的加载与卸载、窗体的加载与卸载时的事件、多模块间数据的传递等。第二十一页,共29页。第二十一页,共29页。7.4.1设置启动对象在程序运行时,首先被加载并执行的对象,称为程序的启动对象。一个程序的启动对象可以是一个窗体,也可以是标准模块中名为Main的自定义Sub过程。缺省情况下,第一个创建的窗体被指定为启动对象。1、设置方法:从“工程”菜单中的最后一项“**属性”,在“**工程属性”对话框中进行设置。2、如果设置从主过程Main()启动,则必须在标准模块中编写Main()过程代码。例:Pg170.第二十二页,共29页。第二十二页,共29页。7.4.2窗体的加载与卸载过程当一个窗体要显示在屏幕之前,必须先建立,接着被装入内存(Load语句),最后显示(Show方法)在屏幕上。同样,当窗体要结束之前,会先从屏幕上隐藏(Hide方法),接着从内存中删除(Unload方法)第二十三页,共29页。第二十三页,共29页。在窗体的加载过程的各阶段所用一的语句或方法以及所触发的事件可用下面的图来说明:第二十四页,共29页。第二十四页,共29页。在窗体的卸载过程的各阶段所用一的语句或方法以及所触发的事件如下图:Unload语句QueryUnloadUnload第二十五页,共29页。第二十五页,共29页。1、窗体的加载与显示(1)Load语句:装入窗体到内存
Load窗体名称说明:执行Load语句后,窗体并不显示出来,但可引用该窗体中的控件及各种属性。
注意:这里的窗体名称是窗体的Name属性,而不是窗体的文件名,以下相同。(3)Show方法:显示一个窗体
[窗体名称].Show[模式]0-Modeless(非模式):可以对其它窗体进行操作1-Model,关闭才能对其它窗体进行操作。 第二十六页,共29页。第二十六页,共29页。2、窗体的隐藏与卸载
(1)Unload语句:从内存删除窗体
Unload<窗体名称> 说明:当窗体卸载之后,所有在运行时放到该窗体上的控件都不再是可访问的。在设计时放到该窗体上的控件将保持不变在卸载窗体时,只有显示的部件被卸载。与该窗体模块相关联的代码还保持在内存中。(2)Hide方法:隐藏,没有删除
[窗体名称.]Hide第二十七页,共29页。第二十
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地转让协议书2023标准版
- 颅缝分离病因介绍
- 2024宾馆转让协议
- 双方协议离婚吗
- 中考历史基础知识第7讲中华民族的抗日战争
- (2024)果蔬交易市场建设项目可行性研究报告(一)
- 湖南省永州市道县2024-2025学年八年级上学期期中生物学试题(原卷版)-A4
- 2024秋新沪科版物理八年级上册课件 第一章 运动的世界 第一节 动与静 1
- 管理评审会议材料汇编培训课件
- 热工基础模拟习题
- 高速铁路概论 课件 第3章 高速铁路车站
- 2024-2030年水培蔬菜行业市场发展分析及发展趋势与投资战略研究报告
- 2024年部编版语文五年级上册全册单元检测题及答案(共8套)
- 集成电路制造工艺 课件 6光刻工艺2
- 建筑边坡工程施工质量验收标准
- 2020海湾JTW-LD-GST85B缆式线型感温火灾探测器
- 微测网题库完整版行测
- 2024中华人民共和国农村集体经济组织法详细解读课件
- 2024年贵州省中考理科综合试卷(含答案)
- 2024应急管理部国家自然灾害防治研究院公开招聘34人(高频重点提升专题训练)共500题附带答案详解
- 2002版《水利工程施工机械台时费定额》
评论
0/150
提交评论