




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章主要内容 过程概述VisualBasic的代码模块VisualBasic的过程变量的作用域用户自定义类型 4 1过程概述 过程 是用来执行一个特定任务的一段程序代码 VB中有两类过程 1 由系统提供的内部函数过程和事件过程 2 用户根据自己的需要定义 供事件过程多次调用的自定义过程 自定义过程又分为以下几类 以 Sub 保留字开始的子过程 以 Function 保留字开始的函数过程 以 Property 保留字开始的属性过程 以 Event 保留字开始的事件过程 4 2VisualBasic的代码模块 VB的应用程序是由过程组成的 过程代码放在模块中 VB提供了三类代码模块 窗体模块 标准模块和类模块 VB应用程序 VBP 窗体模块 frm 类模块 cls 标准模块 bas 函数过程 function Sub过程 事件过程 Sub过程 函数过程 模块管理是通过工程资源管理器窗口来组织和管理一个工程 应用程序 的 窗体模块 Frm 标准模块 Bas 类模块 Cls 4 1 1窗体模块每个窗体对应一个窗体模块 窗体模块包含窗体及其控件的属性设置 窗体变量的说明 事件过程 窗体内的通用过程 外部过程的窗体级声明等 窗体模块保存在扩展名为 Frm的磁盘文件中 默认时应用程序只有一个窗体 因此也只有一个窗体模块文件 如果应用程序有多个窗体 就会相应地有多个窗体模块件 4 1 2标准模块标准模块的作用 在多个不同的窗体中 为了避免在不同的窗体模块中重复书写相同的变量或过程代码 可以创建标准模块 标准模块一般用来存放公共代码过程和声明公共变量 说明 标准模块一般包括全局变量声明 模块级变量声明和通用代码过程等几部分 全局变量声明位于最前面 用关键字public声明 所声明的变量供整个应用程序使用 模块级变量是指只在标准模块使用的变量 用dim或private进行声明 标准模块中的过程代码是公有的 任何窗体或模块中的事件过程都可以调用它们 由于标准模块是以单独磁盘文件形式保存的 因此在不同的应用程序中可以调用同一个标准模块 在标准模块中可以包含通用过程 但不可以包含事件过程 4 1 3类模块类模块保存在扩展名为 cls的文件中 可以在 类模块中编写代码建立新对象 这些新对象可以包含自定义的属性和方法 可以在应用程序内的过程中使用 类模块与标准模块的不同之外在于 标准模块仅仅含有代码 而类模块即含有代码又含有数据 类模块可以视为没有物理表示的对象 4 2VisualBasic的过程 4 2 1通用过程创建与调试通用过程 sub过程 可以存储在窗体或标准模块中 存储在窗体模块中的通用过程只能被窗体事件过程调用 存储在标准模块中的通用过程则可以被整个工程中的事件过程调用 1 通用过程的创建方法 一是 直接在代码编辑窗口中输入过程代码 二是 使用 添加过程 对话框创建 1 直接在代码编辑窗口中创建 过程的形式如下 Static Public Private Sub子过程名 形参列表 局部变量或常数定义 ExitSub EndSub 形式说明 按默认规定 所有模块中的子过程都为public 公用的 标准模块的公用过程可以在应用程序中被任意调用 但窗体模块中的公用过程只能在本窗体中调用 若使用private则只有该过程所在模块的程序才能调用该过程 如果使用static 静态 关键字 则该过程中的所有局部变量的存储空间只分配一次 且这些变量的值在整个过程中都存在 如果省略此参数 则过程每次被调用时系统会重新为其变量分配存储空间 当过程结束后存储空间被释放 过程名遵守变量名的命名规则 长度不要超过40个字符 形参列表 类似于变量声明 是用 分隔开的若干个变量 格式如下 变量名1 As类型 变量名2 As类型 或 变量名1 类型符 变量名2 类型符 形参表中出现的参数称为形式参数 其没有固定的值 只有当过程被调用时 才被一个确定的值所替代 ExitSub 表示中途退出子过程 2 使用添加过程对话框创建步骤如下 1 切换到代码窗口 2 选择 工具 菜单下的 添加过程 命令 弹出 添加过程 对话框 见下图 3 在 名称 框中输入过程名 例如在图中显示输入的过程名为 max 4 在 类型 组中选取 子程序 5 在 范围 组中选取 公有的 定义一个公共级的全局过程 或选取 私有的 定义一个局部过程 6 单击 确定 按钮 完成对子过程的定义 此时 代码窗口中会自动出现子过程的代码框架 例如 单击图所示对话框的 确定 按钮后 在代码窗口中会出现以下代码 PublicSubsum EndSub可以在子过程的代码框架中输入语句 以完成相应功能 实例 4 2 2函数过程的创建与调用函数过程与子过程最主要的区别在于 函数过程有返回值 而子过程没有返回值 函数过程是自定义过程的另一种形式 当过程的执行需要返回一个值时 使用函数过程比用子过程更加简单方便 1 函数过程的创建语法格式 Static Public Private Function函数名 形参列表 As类型 局部变量或常数定义 语句序列1 ExitFunction 语句序列2 函数名 表达式EndFunction 说明 As类型 指明函数过程返回值的类型 在函数过程中至少对函数名赋值一次 从函数过程返回时函数名的值就是返回值 无论函数有无参数 函数名后的括号都不能省略 ExitFunction 表示中途退出函数过程 实例说明 Functionsum x y AsIntegersum x yEndFunctionPrivateSubForm Click d sum 2 3 PrintdEndSub在上述函数过程中 AsInteger 定义名为sum的函数过程返回值为整型 通过语句 sum x y 对函数名赋值 执行上述语句段 会在窗体上输出数字5 2 函数过程的调用调用函数过程可以由函数名带回一个值给调用程序 被调用的函数必须作为表达式或表达式中的一部分 再与其他的语法成分一起配合使用 因此 与子过程的调用方式不同 函数不能作为单独的语句加以调用 最简单的情况就是在赋值语句中调用函数过程 其形式为 变量名 函数过程名 实参列表 工程 4 2 3过程中参数的传递1 形式参数和实际参数形式参数 在定义Sub过程或Function过程时 过程名或函数名后面括弧中的变量名 简称形参 实际参数 在调用Sub过程或Function过程时 过程名或函数名后面括弧中的常量 变量或表达式 简称实参 2 有关规定 多个实参或形参之间用逗号隔开 在定义时 形参为实参预留位置 在调用时实参的值被一一插入到对应的形参位置上去 实参与形参间个数相等 类型相符且书写顺序应一致 实参与形参按顺序对应 一一传递数据 3 传值与传址在调用过程时 参数的传递有两种 按地址传递和按值传递 按址传递 形参和实参使用同一个内存地址单元 因此形参和实参还有一定的联系 按值传递 系统将实参的值传给形参后 形参与实参就断开了联系 调用过程中的操作是在形参自己的存储单元中进行的 一旦过程结束 形参占用的内存全部释放 由此可见 在过程中对形参的任何操作都不会影响实参 传址与传值的区别 最主要的区别是 对形参的操作是否会对实参产生影响 传址时 实参和形参共用一个内存单元 对形参的操作等同于对实参操作 传值时 实参和形参使用不同内存单元 对形参的操作不会对实参产生影响 形式上的区别是 在形参前是否有关键字 ByVal 使用传址时 无需在形参前加任何关键字使用传值时 需要在形参前加关键字 ByVal 实参取值上的区别 按址传递 实参不能是常量或表达式 只能是变量 按值传递 实参可以变量 常量或表达式 例4 5按值传递和按址传递示意图 应用举例 10 20 实参 a b y x 形参 10 20 10 20 实参 a b 形参 y x 20 10 20 10 按值传递 按值传递 4 2 4数组参数的传递在VB中允许参数是数组 数组只能通过传址方式进行传递 注意 在实参列表和形参列表中放入数组名 忽略维数的定义 但圆括号不能省略 如果被调过程不知道实参数组的上下界 可用lbound 和ubound 函数来确定实参的上下界 应用举例 4 2 5过程的递归递归算法是指一个过程直接或间接调用自己本身的一种方法 在被调用的函数中必然存在一个终止条件 否则会陷入死循环 Functionf xasinteger ifx 10thenf xelsef 3 f 2 x endifEndFunction f 2 函数的调用和执行过程 fact n n fact n 1 fact 4 的执行过程 4 3变量的作用域 变量的作用域 是指变量在程序中能够被识别的范围 按作用域变量可分为 过程级变量 procedurelevel 是指在过程中声明变量 模块级变量 modullevel 是指在模块中声明变量 按变量的作用范围分类 过程级变量属于局部变量 模块级变量属于全局变量 4 3 1过程级变量在程序内部定义的变量就是 过程级变量 未经声明 默认为过程级变量 在一个过程内部使用dim或static关键字声明的变量 过程级变量被限制在过程内部使用 一旦退出过程 变量自动消失 常用于存储临时数据或运算的中间结果 例 privatesubcommand1 click dimaasinteger basintegerstaticsaslong endsub 4 3 2模块级变量模块级变量根据其作用范围的不同可分为模块级变量和应用程序级变量 一个窗体模块中包含多个事件过程和通用过程 如果希望在整个模块中的多个过程中使用同一个变量 就必须声明为模块级变量 在一个模块内部使用的模块级变量 可以使用private或dim来声明 模块级变量可以在窗体模块 标准模块和类模块中定义 但不可在过程内部定义 例如 privatesassingledimaasinteger basintegerprivatesubcommand click endsub 应用举例 4 3 3变量的生存周期程序在退出运行后 变量占用内存单元是释放还是保留 这就是变量的生存周期 根据变量的生存周期 把变量分为 静态变量 static 和动态变量 dynamic 说明 动态变量是指程序运行进入变量所在过程时 系统才分配该变量的内存单元 一旦程序结束 退出过程后 变量所占内存释放 静态变量是指程序运行进入变量所在过程 修改变量的值 退出过程序列后 变量所占内存单元未被释放 变量值仍然可用 在过程中使用dim声明的局部变量属于动态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新解读《GB-T 31154-2014太阳Hα耀斑分级》
- 小区景点管理方案范本
- j家政劳务合同范本
- 乙方终止租赁合同范本
- 终止合同范本告知书
- 模板租赁销售合同范本
- 农药商店聘用合同5篇
- 个人境外旅游合同范本
- 茶叶地租赁合同范本
- 承包竹子砍伐合同范本
- 2023-2025年中考语文试题分类汇编:记叙文阅读(辽宁专用)解析版
- 2025年教科版新教材科学三年级上册全册教案设计(含教学计划)
- 从+“心”+出发遇见更好的自己-开学第一课暨心理健康教育主题班会-2025-2026学年高中主题班会
- 隔爆水棚替换自动隔爆装置方案及安全技术措施
- 2025年苏教版新教材数学二年级上册教学计划(含进度表)
- 智能纤维案例
- 供应商现场考核记录
- 视频拍摄入门(上)课件
- 基础培训s8课件
- 美林时钟的自我救赎
- 催产素引产术的护理PPT课件
评论
0/150
提交评论