为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

VB的变量作用域_参数传递及键盘事件

2017-10-17 5页 doc 19KB 31阅读

用户头像

is_589748

暂无简介

举报
VB的变量作用域_参数传递及键盘事件VB的变量作用域_参数传递及键盘事件 第 19 卷 第 5 期 Vol.19 No.5 天 中 学 刊 2004 年 10 月 Journal of Tianzhong Oct.2004 VB 的变量作用域、参数传递及键盘事件 张飞 :驻马店师范高等专科学校,河南 驻马店 463000: 摘 要:在 VB 中定义变量时,定义所在的位置十分重要;形参的值变化时是否影响实参的值,取决于参数的传 递形式是传值还是引用;面向对象的程序是按事件触发的先后顺序来执行的, 关键词:面向对象;变量;作用域;参数;传值;引用 () ...
VB的变量作用域_参数传递及键盘事件
VB的变量作用域_参数传递及键盘事件 第 19 卷 第 5 期 Vol.19 No.5 天 中 学 刊 2004 年 10 月 Journal of Tianzhong Oct.2004 VB 的变量作用域、参数传递及键盘事件 张飞 :驻马店师范高等专科学校,河南 驻马店 463000: 摘 要:在 VB 中定义变量时,定义所在的位置十分重要;形参的值变化时是否影响实参的值,取决于参数的传 递形式是传值还是引用;面向对象的程序是按事件触发的先后顺序来执行的, 关键词:面向对象;变量;作用域;参数;传值;引用 () 中图分类号:TP311 文献标识码:B 文章编号:1006-5261200405-0049-02 VISVAL BASIC(简称 VB)面向对象程序设计语言具 的“通用声明”部分用 dim 或 private 定义,可以被本窗 功能强大、容易学习掌握等特点(但在教学中发现,不少或本模块中的其他过程或数调用,变量的值在本窗体或 生在学习 VB 的过程中,对变量的作用域、参数传递及键 块被卸载后才被清空( 例 2 对于下面的程序代码: 事件等内容不能很好地掌握,其中一个原因是有关资料对 dim a as integer 些内容的介绍不够系统(以下根据自己的经验,就变量的 ()private sub command1_click 用域、参数传递及键盘事件进行探讨( a=7: print a 变量的作用域end sub ()private sub command2_click 变量的作用域决定了哪些子过程和函数过程可访问该 a=a+3: print a 量(变量按作用域可分为局部变量、窗体模块级变量和全 end sub 变量(在定义变量时,定义所在的位置十分重要( () 1局部变量(局部变量只能在本过程或函数过程中有 程序运行中,若单击 command1 后,再单击 command2, 果应是 7 和 10(如果连续单击 command2,则变量 a 的值 义,又可分为动态变量和静态变量(动态变量的值随过程 用的结束而被释放,动态变量在过程中用 dim 定义;静态 每次增加 3( () 3全局变量(全局变量是在一个工程中,可以被本 量的值在过程调用结束时不被释放,而是在窗体关闭后被 放,静态变量在过程中用 static 定义( 程中其他窗体或模块访问的变量(在窗体或模块的“通用例 1 一个窗体上有 command1 和 command2 两个命令 明”部分用 public 定义,定义所在的位置不同,其他窗体 钮,程序代码如下:过程引用该变量的方式也有所不同(如在窗体的公共部分 ()private sub command1_click 用 public 定义,则工程内的其他窗体或模块引用该变量时 dim a as integer 应加上该变量所在的窗体名;如在模块内用 public 义,则工程内的其他窗体或模块引用该变量时直接引用 a=a+3: print a end sub 在一个工程中,如果全局变量、窗体模块级变量和局 () private sub command2_click 变量同名时,作用域范围小的变量优先( 例 3 下面的程序,运行时先后单击 command1 static b as integer command2,则窗体上显示 3 和 0( b=b+3: print b dim a as integer end sub ()private sub command1_click 分别连续单击 command1 和 command2,前者连续显示 dim a as integer 后者按 3,6, 递增(这是因为变量 a 是动态变量,过 a=a+3: print a 调用结束时便被释放;变量 b 是静态变量,过程调用结束 end sub 不被释放(()private sub command2_click () 2窗体模块级变量(窗体模块级变量在本窗体或模块 稿日期:2004-01-28 者简介:张飞(1974 ),男,河南遂平人,驻马店师专计算机科学系助教, print a 的一个事件过程(在键盘事件 keypress 中,参数 keyascii 返 回的值是键盘上键位的 ASCII 码( end sub 例 6 对于下面的一段程序: 2 过程的参数传递 ()private sub text1_keypress keyascii as integer print keyascii 2.1 传值与引用 end sub 在 VB 中,过程的调用离不开参数的传递,传递的形式 又可分为传值与引用(采用传值方式,实参与形参占用不同 运行程序时在 Text1 上单击键盘上的数字键、英文字母键等, 的存储空间,形参的值变化时不影响实参的值;采用引用方 窗体上显示对应字符的 ASCII 码;若单击键盘上的功能键、 式,实参与形参占用同一个存储空间,形参的值变化时实参 方向键等,窗体上无任何显示( 的值也随之变化(在过程中采用那种传递方式,完全由形式 () 2键盘事件 keydown 是键盘上某键被按下后触发的一 参数前的关键字决定,若形式参数前有关键字 byval,则按 个事件过程(键盘事件 keyup 是键盘上按下的某键弹起后触 传值方式结合;若形式参数前有关键字 byref 或没有关键字, 发的一个事件过程(这两个键盘都有 keyCode 和 Shift 两个 则按引用方式结合( 参数,keyCode 参数返回的是键盘上每个键位的键盘码,该 例 4 对于下面的一段程序: 码是以“键”为准,双字符键位的键盘码以下档字符的 ascii ()private sub aabyval m as integer, byref n as integer 码为准;Shift 参数决定 Shift 键、Alt 键、Ctrl 键的执行状态 m=m+7: n=n+7: print m, n; (3 个键可以任意组合),这 3 个键分别以二进制表示:Shift 为 0001、Alt 为 0010、Ctrl 为 0100( end sub 例 7 对于下面的一段程序: () private sub command1_click(Private Sub Text1_keydownkeycode as integer,shift as dim a as integer, b as integer )integer ()a=3: b=4: call aaa,b: print a,b Print keycode: if shift=3 then print “Shift+Alt” end sub End Sub 如果单击 command1,则窗体上显示出 10,11,3,11(原(Private Sub Text1_keyupkeycode as integer, shift as 因是形参 m 与实参 a 间采用的是传值方式,m 变化时 a 不 )变化;形参 n 与实参 b 间采用的是引用方式,n 变化时 b 也 integer 随之变化( Print keycode: If shift=3 then print "Shift+Crtl" 2.2 形式参数与变量 End Sub 形式参数只是形式意义的参数,名字并不重要(形式参 运行程序是会出现以下现象:输入大写字母或小写字母时,数只在过程中有意义,过程调用结束后形式参数的存储空间 窗体上都会输出该字母的大写字母的键盘码,即大写字母的 会被动态释放,因此,形式参数与普通变量虽然同名,但代 ASCII 码;输入一个字母窗体上输出两个相同的结果,因为 表的意义绝不相同( 按下一字母的过程,要先后触发两个事件(keydown keyup); 例 5 对于下面的一段程序: 当 Shift 与 Alt 和字母三键同时按下后,窗体上会输出 dim m as integer, n as integer “Shift+Alt”字符(shift 参数的值=0001+0010)( ()private sub aam as integer, n as integer 3.2 键盘事件的触发次序 面向过程的程序是按程序代码的先后顺序来执行,而面 m=m+3: n=n-3 向对象的程序是按事件触发的先后顺序来执行(在面向对象 end sub 的程序设计中,即使程序代码相同,但触发顺序不同时,程 ()private sub command1_click 序运行的结果会不相同(3 种键盘事件的触发顺序应为 () call aa3,3keydown,keyup,keypress( print m, n end sub 程序运行后单击 command1 后,窗体上显示 0 和 0 而不是 6 和 0(原因在于虽然 3(实参)传递给了形参 m 和 n,但过 程调用结束后形参的值又被动态释放(变量 m 和 n 虽是窗 体模块级变量(由 dim 语句定义),但均未被赋值,所以保 参考文献: 持初值为 0 的结果( [1] 龚沛曾,陆尉民,杨志强,VB 程序设计教程[M],北京: 高等教育出版社,1998,104 167, [2] 刘炳文,杨明福,陈定中,VB 程序设计二级教程[M],北 京:高等教育出版社,2001,228 235, [3] 姚树兵,戴红,陈哲,VB 入门与提高[M],北京:清华 大学出版社,1999,49 56, 3 键盘事件的参数及触发次序 3.1 键盘事件的参数 〔责任编辑 张继金〕() 1键盘事件 keypress 是键盘上某键按下又弹起后触发
/
本文档为【VB的变量作用域_参数传递及键盘事件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索