- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
变量与过程的作用范围.ppt
第8章 变量与过程的作用范围 第8章 变量与过程的作用范围 在VB中,应用程序是由若干个过程组成的,这些过程一般保存在窗体文件(.frm)或标准模块文件(.bas)中。变量在过程中是必不可少的。根据变量或过程所处的不同位置,可被访问的范围是不相同的。变量与过程可被访问的范围称为变量与过程的作用域。 8.1 代码模块的概念 在建立VB的应用程序时,应首先设计代码的结构。VB应用程序的结构通常如图8-1所示。 图8-1 VB应用程序的结构 VB将代码存储在3种不同的模块中:窗体模块(窗体)、标准模块(模块)和类模块。在这3种模块中都可以包含声明(常数、变量、动态链接库DLL的声明)和过程(Sub、Function、Property过程)。它们形成了工程的一种模块层次结构,可以较好地组织工程,同时也便于代码的维护,如图8-2所示。 图8-2 工程中的模块 8.1.1 窗体模块 每个窗体对应一个窗体模块,窗体模块包含窗体及其控件的属性设置、窗体变量的说明、事件过程、窗体内的通用过程、外部过程的窗体级声明。 窗体模块保存在扩展名为.frm的文件中。默认时应用程序中只有一个窗体,因此有一个以.frm为扩展名的窗体模块文件。如果应用程序有多个窗体,就会有多个以.frm为扩展名的窗体模块文件。 如果要在文本编辑器中观察窗体模块,则还会看到窗体及其控件的描述,包括它们的属性设置值,如图8-3所示。窗体模块中也可以引用该应用程序内的其他窗体或对象。 从“工程”菜单中执行“添加窗体”命令,可以添加新窗体模块。 8.1.2 标准模块 标准模块保存在扩展名为.bas的文件中,缺省时应用程序中不包含标准模块。标准模块可以包含公有或模块级的变量、常数、类型、外部过程和全局过程的全局声明或模块级声明。缺省时,标准模块中的代码是公有的,任何窗体或模块中的事件过程或通用过程都可以调用它。写入标准模块的代码不必绑在特定的应用程序上,在许多不同的应用程序中可以重用标准模块。在标准模块中可以存储通用过程,但不能存储事件过程。 从“工程”菜单中执行“添加模块”命令,可以在工程中添加标准模块。 8.1.3 类模块 在VB中,类模块(文件扩展名为.cls)是面向对象编程的基础。程序员可在类模块中编写代码建立新对象,这些新对象可以包含自定义的属性和方法,可以在应用程序内的过程中使用。实际上,窗体本身正是这样一种类模块,在其上可安放控件、可显示窗体窗口。 类模块与标准模块的不同之处在于标准模块仅仅含有代码,而类模块既含有代码又含有数据,类模块可以视为没有物理表示的对象。 8.2 变量的作用范围 变量的作用范围(作用域)指变量能被某一过程识别的范围。当一个应用程序中出现多个过程或函数时,在它们各自的子程序中都可以定义自己的常量、变量。这时,自然会提出一个问题,这些常量或变量是否在程序中到处可用?回答是否定的。 在VB中,可以在过程或模块中声明变量,根据声明变量的位置,变量分为两类:过程级变量(Procedure level)和模块级变量(Module level)。 按照作用范围分类,过程级变量属于局部变量,而模块级变量则属于全局变量。 8.2.1 过程级变量 在一个过程内部使用Dim或Static关键字声明变量时,只有该过程内部的代码才能访问或改变该变量的值,因此被称为“过程级变量”。过程级变量的作用范围限制在该过程内部。例如: Dim a As Integer, b As Single Static s As String 如果在过程中未作说明而直接使用某个变量,该变量也被当成过程级变量。用Static说明的变量在应用程序的整个运行过程中都一直存在,而用Dim说明的变量只在过程执行时存在,退出过程后,这类变量就会消失。 过程级变量属于局部变量,只能在建立的过程内有效,即使是在主程序中建立的变量,也不能在被调用的子过程中使用。 【例8-1】过程级局部变量示例。 Private Sub Form_Activate() Dim a As Integer, b As Integer, c As Integer 过程级局部变量 a = 5: b = 3 Print Print Tab(15); a; Tab(25); b; Tab(35); c=a*b Print 调用Prod前; Tab(14); a; Tab(24); b; Tab(34); c Call Prod Print 调用Prod后; Tab(14); a; Tab(24); b;
您可能关注的文档
- 华中科技大学数据库课件关系数据理论.ppt
- 华中科技大学现代控制理论.现代控制理论的主要内容.ppt
- 华中科技大学电信系数电课件绪论.ppt
- 华中科技大学谭毅华_数据挖掘引言.ppt
- 华为TDSCDMA基站站点解决方案.ppt
- 华为中低端路由器学习_访问控制列表和地址转换及配置ISSUE[]..ppt
- 华为基站设备培训讲义BTS.ppt
- 华侨大学自动化专业数字信号处理ppt.ppt
- 华北水利学院数据结构课件第五章陈波.ppt
- 华师版八级上册数学第十三章第一节命题定理与证明第一课时.ppt
- 2024年塑料涂料项目资金申请报告代可行性研究报告.docx
- 2024年水电自动化项目资金申请报告代可行性研究报告.docx
- 2024年核电站用过滤毡项目资金筹措计划书代可行性研究报告.docx
- 2024年污泥处理项目资金申请报告代可行性研究报告.docx
- 2024年烟标印刷项目资金筹措计划书代可行性研究报告.docx
- 2024年洗发水项目投资申请报告代可行性研究报告.docx
- 2024年数控刃磨床项目资金筹措计划书代可行性研究报告.docx
- 2024年工厂化育苗精量播种生产设备项目资金筹措计划书代可行性研究报告.docx
- 2024年综掘设备项目投资申请报告代可行性研究报告.docx
- 2024年高性能陶瓷刀具材料项目资金筹措计划书代可行性研究报告.docx
文档评论(0)