您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第8章 变量与过程的作用范围
第8章变量与过程的作用范围§8.1代码模块的概念§8.2变量的作用范围§8.3过程的作用范围§8.4高级变量§8.5用户定义类型§8.1代码模块的概念VB中的程序代码可以存储在三种不同的模块中:一、窗体模块(.Frm)二、标准模块(.Bas)三、类模块(.Cls)在每一种模块中可以定义相应的变量、常量和过程。根据定义位置和方式的不同,这些变量、常量和过程的作用范围也不同。一、窗体模块(.Frm)每个窗体对应一个窗体模块,保存在扩展名为.Frm的文件中。窗体模块中包含窗体及控件的属性设置、窗体变量的说明、事件过程及通用过程的声明等。1.查看窗体模块的内容用任何一种文本编辑器可以打开窗体模块文件(.Frm)进行查看。(写字板)BeginVB.FormForm1Caption=Form1ClientHeight=5016ClientLeft=48ClientTop=348ClientWidth=7428BeginPropertyFontName=宋体Size=42一、窗体模块(.Frm)2.添加窗体在“工程”菜单中选择“添加窗体”对话框,或从工具栏中选择相应按钮即可打开添加窗体的对话框。共有10种新建窗体,当然也可从已有的窗体中选择一个添加进来。某些窗体已有部分代码,用户可以直接使用或稍加修改后使用。一、窗体模块(.Frm)3.选择工程的启动窗体当一个工程中有多个窗体时,可以在“工程”菜单中选择“工程属性”对话框,从“启动对象”列表框中可以选择启动窗体。二、标准模块(.Bas)简单的应用程序通常只有一个窗体,所有的代码都存放在窗体模块中。对于一个庞大而复杂的工程,往往需要多个窗体,而且某些通用过程在各个窗体模块中可以通用。为了避免代码的重复键入,我们可以将通用代码、全局变量等放在一个公共模块中,此模块就是标准模块。在标准模块中可以定义公用的常量、变量、通用过程等,但不能定义事件过程。二、标准模块(.Bas)1.添加标准模块在“工程”菜单中选择“添加模块”对话框。可以“新建”,也可以从“现存”的模块中选择一个。2.修改模块名称标准模块只有一个“名称”属性,在其中修改即可。虽然保存工程时也可以给模块起名,但这是Bas文件的名字,模块的名称仍然使用的是默认名称Module1、Module2等。三、类模块(.Cls)*在“工程”菜单中选择“添加类模块”对话框。可以“新建”,也可以从“现存”的类模块中选择一个。在类模块(Class)中,可以建立新对象,并为新对象设置属性和方法。案例程序1:模拟安装制作案例程序2:大赛评分程序§8.1代码模块的概念回顾一、窗体模块(.Frm)二、标准模块(.Bas)三、类模块(.Cls)§8.2变量的作用范围一、过程级变量二、模块级变量三、变量的生存期变量的分类:按变量的作用范围:局部变量和全局变量。按变量的定义位置:过程级变量和模块级变量。按变量的生存期限:静态变量和动态变量。一、过程级变量1.过程级变量:在过程内部定义的变量,其作用域是它所在的过程。可用Dim或Static来定义;用Dim定义的变量,过程每调用一次,变量的存贮单元重新分配一次,而用Static定义的变量其存贮单元在整个程序运行期间都一直存在。从变量的作用范围来看,过程级变量属于局部变量。2.举例:案例程序3:制作按钮动画二、模块级变量在模块的开头部分(通用段)定义的变量,叫做模块级变量。根据其作用范围的不同,又分为:1.私有的模块级变量在模块的开头部分用关键字Private或Dim来定义,两者没有什么区别,但Private更好一些。其作用范围是整个模块内部,即在模块内的各个过程都可以使用,其它模块不能使用。2.公有的模块级变量在模块的开头部分用关键字Public来定义,其作用范围是所有模块,即整个应用程序。3.举例案例程序4:文字与窗口同变三、变量的生存期1.动态变量程序进入变量所在的过程时,给变量分配一定的存储单元,一旦程序退出该过程,变量所占有的存储单元自动释放,其值消失。在过程中,用Dim定义的变量就是动态变量。2.静态变量在整个程序运行期间,系统分配给变量的存储单元都是固定的,即使程序退出该过程,变量所占有的存储单元也不释放,其值一直存在,下次进入过程时还可以直接引用该值。在过程中,用Static定义的变量就是静态变量。§8.2变量的作用范围回顾1.按变量的作用范围:局部变量和全局变量。2.按变量的定义位置:过程级变量和模块级变量。3.按变量的生存期限:静态变量和动态变量。§8.3过程的作用范围一、模块级过程在模块内用Private定义的过程,其作用域为本模块。二、全局级过程在模块内用Public(默认)定义的过程,其作用域为整个工程。三、调用其它模块中的过程1.调用其它窗体中的过程<窗体名>.<过程名>2.调用标准模块中的过程如果过程名唯一,则可直接调用;如果过程名不唯一,则需指明模块名称。[<模块名>.]<过程名>§8.4高级变量*一、使用多个同名的变量二、公有变量与局部变量的比较三、阴影窗体属性和控件(屏蔽)四、使用同名的变量和过程§8.5用户定义类型一、用户定义类型的概念二、创建用户定义类型三、建立和使用用户定义类型变量四、用户定义类型数组(记录数组)五、程序举例一、用户定义类型的概念描写某些事物时(如通讯录等),用单一的基本数据类型往往是不够的;我们希望能将若干种基本类型的数据组合起来,形成一个整体,便于管理和引用。这时就需要我们用户(程序设计者)自己去定义相应的数据类型。自定义类型又叫做记录类型,其成员可以是各种不同的数据类型。记录类型跟数组类型都是将若干个数据组成的整体,但是数组类型中的每一个元素都是同一种类型,而记录类型中的各个成员类型可以不同。数组中的元素用下标来识别,记录中的成员用成员名来识别。二、创建用户定义类型1.定义格式[Private|Public]Type<类型><字段名1>As<类型名1><字段名2>As<类型名2>……<字段名n>As<类型名n>EndType如:PrivateTypeStudentRecStuNumAsString*6NamesAsString*8CreditAsIntegerAvgAsSingleEndType2.说明①在窗体模块中定义类型时,只能用Private!②在标准模块中定义类型时,可用Public也可用Private!③字段名又称为成员名,其命名规则同变量名的命名规则相同。④成员的类型可以是任何类型,包括另一种用户定义类型。⑤成员的类型是字符串时,其类型不见到非是定长的!书上有误!但定义成定长比较好!三、建立和使用用户定义类型变量1.建立用户定义类型变量必须先定义好类型,然后再定义相应的变量。如:有了上面的用户自定义类型后,就可以定义相应的变量:DimA1AsStudentRec,A2AsStudentRec2.使用用户定义类型变量例8-7,Page176。四、用户定义类型数组1.记录数组如果数组中的元素是记录类型,则这样的数组就叫做用户定义类型数组,简称为记录数组。若要存放50个学生的相关信息,则可定义相应的记录数组:DimStudent(1To50)AsStudentRec2.访问格式访问记录数组时,先得访问数组元素,然后引用其成员。数组名(下标).成员名3.举例●Page177,例8-8。五、程序举例例8-9:Page178。本例题很好,但程序有很多问题(Bug),请同学们学习过程中多加注意!!!请参照本人改写的程序!案例程序5:电脑彩票第8章变量与过程的作用范围回顾§8.1代码模块的概念§8.2变量的作用范围§8.3过程的作用范围§8.4高级变量§8.5用户定义类型作业:1.Page180:32.Page180:43.Page180:5
本文标题:第8章 变量与过程的作用范围
链接地址:https://www.777doc.com/doc-3357687 .html