- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 子过程(Sub、Function、Property和Event) .ppt
同时还允许在不同级声明相同的变量名,如: Public Temp As Integer 全局变量 Sub Form_Load( ) Dim Temp As Integer 局部变量 Temp = 10 访问局部变量 Form1.Temp = 20 访问全局变量必须加窗体名 Print Form1.Temp; Temp 显示20 10 End Sub 一般来说,在同一模块中定义了不同级而有相同名的变量时,系统优先访问作用域小的变量名。如上例定义的全局变量和局部变量都为Temp,在定义局部变量的过程Form_Load内访问Temp,则局部变量优先级高,把全局变量Temp“屏蔽”掉。若想访问全局变量,则必须在全局变量名Temp前加模块名Form1。 4.4.3 变量的生存期 1.动态变量 动态变量是指程序运行进入变量所在的过程后,才分配给该变量内存单元,经过处理退出该过程后,该变量占用的内存单元自动释放,其值消失,其内存单元能被其它变量占用。 使用Dim关键字在过程中声明的局部变量属于动态变量,在过程执行结束后变量的值不被保留,在每一次重新执行过程时,变量重新声明。 2.静态变量 静态变量是指程序运行进入该变量所在的过程,修改该变量的值后,退出该过程,但是其修改后的值已经被保留了,当再次调用该过程时,使用的是已被修改后的值。也就是说,在整个应用程序启动后,其所占的内存并没有被释放,每一次更新的值都被保存下来,以供下次调用。 总之,局部变量除了用Dim语句声明外,还可用Static语句将变量声明为静态变量,它在程序运行过程中可保留变量的值。这就是说,每次调用过程时,用Static说明的变量保持上一次修改后的值。而用Dim说明的变量,每次调用过程时,都重新初始化。用Static语句将变量声明为静态变量的形式如下: Static 变量名[As类型] Static Function函数名([参数列表])[As类型] Static sub过程名[(参数列表)] 若在函数名、过程名前加Static,则表示该函数、过程内的局部变量都是静态变量。 下面的例子比较Dim和Static两者说明的变量的区别。 【例4-5】 一个窗体单击事件过程(Form_Click( ))和一个求和函数(sum( ))组成的应用程序,在Form_Click( )过程中5次调用函数sum( )。 Private Sub Form_Click( ) Dim i As Integer, iSum1 As Integer For i = 1 To 5 isum = sum(i) Print iSum1=; isum Next i End Sub Private Function sum(n As Integer) Dim j As Integer 每调用一次sum函数,j变量初始化为0 j = j + n sum = j End Function * 第4章 子过程(Sub、Function、Property和Event) 第4章 子过程(Sub、Function、Property和Event) 4.1 子过程的定义 4.2 过程的调用 4.3 参数传递 4.4 变量、过程的作用域 4.5 常用方法 4.6 用户定义类型 习题四 4.1 子过程的定义 1.利用菜单定义 利用“工具”菜单下的“添加过程”命令定义过程的步骤如下: (1) 为要编写函数和过程的窗体/标准模块打开代码窗口。 (2) 选择“工具”菜单下的“添加过程”命令,显示“添加过程”对话框。 (3) 在“名称”框中输入过程名(过程名中不允许有空格)。 (4) 在“类型”组中选取“子程序”定义子过程;选取“函数”定义函数过程。 (5) 在“范围”组中选取“公用的”定义一个公共级的全局过程;选取“私有的”定义一个标准模块级或窗体级的局部过程。 2.利用窗口定义 利用代码窗口直接定义过程时,在窗体或标准模块的代码窗口把插入点放在所有现有过程之外,然后键入Sub子过程名或
文档评论(0)