a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 77|回复: 0

[Visual Basic] 2011年计算机等级考试二级VB基础教程(24)

[复制链接]
发表于 2012-7-31 22:10:12 | 显示全部楼层 |阅读模式
  6.1VB的过程设计及子过程(Sub)的定义与调用  o% U( @" P! w& {9 ^3 S
  1.什么是过程
$ q  K7 a: f% z3 I. |% A: G1 Q+ z  在程序设计中,为各个相对独立的功能模块所编写的一段程序称之为过程。5 n& F& P& o7 q3 ~+ h& a: ?
  2.VB中的自定义过程分类
. {" v5 t" k4 R1 x0 \" ]  (1)以“Sub”保留字开始的子程序过程 (包括事件过程和通用过程),不返回值;0 E2 z  g' i$ a. G
  (2)以“Function” 保留字开始的函数过程,返回一个值;$ e" k/ }  y  U  R+ |
  (3)以“Property” 保留字开始的属性过程,可以返回和设置窗体、标准模块以及类模块的属性值,也可以设置对象的值。
& t' s. C" h! E( {, T3 s, `+ c  3. 事件过程
2 |' m; t/ o0 D: L3 f3 c3 v  (1)窗体事件过程
, W. p6 ~  v3 `( Q  语法:Private Sub Form_事件名([参数列表])7 p2 b" b& e6 ]
  [局部变量和常数声明]8 M- F3 o& S! D/ R  {+ y7 w' O6 Z
  语句块
1 M$ Y3 g. A% X1 F0 Y2 e# w7 N+ D  End Sub. l6 z" I( F" `" ^" J
  注意:" W" i+ k: B1 R
  1)窗体事件过程名由Form_事件名组成,多文档窗体用MDIForm_事件名;
" \! }9 o9 `0 V  2)每个窗体事件过程名前都有一个Private的前缀,表示该事件过程不能在它自己的窗体模块之外被调用;
. R/ Y1 i+ \, y$ [5 W  3)事件过程有无参数,完全由VB提供的具体事件本身决定,用户不可以随意添加。
1 B( U% F% L( {- i  (2)控件事件过程
; N: j+ D' s5 Y+ ]# z& g  语法:Private Sub 控件名_事件名([参数列表])
3 F; f  X0 t5 B; X  [局部变量和常数声明]% [% m% i2 h; a2 r; j4 z8 j
  语句块
/ O7 V4 I$ W# I3 W5 y  End Sub
2 N! N% i0 l5 w% ~6 J2 E* |  注意:其中的控件名必须与窗体中某控件相匹配,否则VB将认为它是一个通用过程。
$ f# F' N( ?$ p* S  (3)建立事件过程的方法
9 h- b. K9 X+ w  1)打开代码编辑器窗口(两种方法:双击对象或从工程管理器中单击“查看代码”按钮)
0 I6 p; {7 z3 ]0 b. q5 T  2)在代码编辑器窗口中,选择所需要的“对象”和“事件过程”
5 i! P* U6 @7 }  ~2 P- C/ p1 B  3)在Private Sub …… End Sub之间键入代码
0 r* ^/ j' ^3 _! j6 R  4)保存工程和窗体
# i0 @+ E4 n  h; q  (4)事件过程的调用0 A/ z! p* D3 z+ A3 S
  事件过程由一个发生在VB中的事件来自动调用或者由同一模块中的其他过程显示调用。
  ~& r% g" j& U8 K  U  2.通用过程
2 f6 q- k; E9 G  通用过程是一个必须从另一个过程显示调用的程序段,通用过程有助于将复杂的应用程序分解成多个易于管理的逻辑单元,使应用程序更简洁、更易于维护。0 y- b0 b# }2 k7 e4 T
  通用过程分为公有(Public)过程和私有( Private)过程两种,公有过程可以被应用程序中的任一过程调用,而私有过程只能被同一模块中的过程调用。
9 j! h/ K* g" `+ V. U1 j0 R, y  (1)定义方法:/ F* l; @/ H% }7 B& U. Y
  [ Private | Public ] [ Static] Sub 过程名([参数列表])1 G% f$ I8 h4 a* i. v1 h: B
  [局部变量和常数声明] ‘用Dim 或Static声明
+ }' {$ i1 b2 ^2 i  语句块
) m7 c' x* ?% y' c1 @7 k  [Exit Sub]$ W1 X$ X& A& {" D, `+ Z7 Z. h& V
  语句块9 G: h7 V# x' X( p+ |- g6 l# Z
  End Sub' [& B' k7 i) v' Z
  注意:0 i* }$ R0 `8 d5 I/ F6 X
  1)缺省[ Private | Public ]时,系统默认为 Public ;$ ]) f+ w0 ?$ T7 g+ z5 d
  2)Static 表示过程中的局部变量为“静态”变量;! O$ R; v- L, |
  3)过程名的命名规则与变量命名规则相同,在同一个模块中,同一符号名不得既用作Sub过程名,又用作Function过程名。
' `7 z# N2 d7 R! g  4)参数列表中的参数称为形式参数,它可以是变量名或数组名,只能是简单变量,不能是常量、数组元素、表达式;若有多个参数时,各参数之间用逗号分隔,形参没有具体的值。VB的过程可以没有参数,但一对圆括号不可以省略。不含参数的过程称为无参过程。
: u2 m, q3 Z! t6 x' x  形参格式为:
1 t& F/ g) P4 ]$ }- t2 e+ `  [ ByVal ] 变量名[()] [As 数据类型]/ z: W# v" I$ O7 P# m
  式中:8 q4 I1 Q. I7 L( [) r# O
  变量名[()]:变量名为合法的VB变量名或数组名,无括号表示变量,有括号表示数组。6 Q; D6 D4 j0 z
  ByVal :表明其后的形参是按值传递参数(传值参数 Passed By Value),若缺省或用ByRef,则表明参数是按地址传递的(传址参数)或称“引用”(Passed By Reference)。
; @' W$ t% Z/ @4 A4 c) E  As: 数据类型:缺省表明该形参是变体型变量,若形参变量的类型声明为String,则只能是不定长的。而在调用该过程时,对应的实在参数可以是定长的字符串或字符串数组,若形参是数组则无限制。* \' j" d  n! d5 u, A: e( W
  5)Sub 过程不能嵌套定义,但可以嵌套调用。' J: @" b- Q5 I, m8 m
  6) End Sub 标志该过程的结束,系统返回并调用该过程语句的下一条语句。. T- i2 {8 v* k: e- q! b, U
  7) 过程中可以用Exit Sub提前结束过程,并返回到下调用该过程语句的下一条语句。4 {  [0 C! w  G& J& m4 E
  (2)建立Sub过程的方法2 _( m; P+ k3 v: m* G
  方法一:1 }4 Q" z) v; m
  1)打开代码编辑器窗口; C' x  W8 m2 D/ B$ X1 R0 E
  2)选择“工具”菜单中的“添加过程”! ~$ y( h& M( m& a, I
  3)从对话框中输入过程名,并选择类型和范围' k6 X0 u8 z" K6 G( Y
  4)在新创建的过程中输入内容
' F1 n! W3 b, r9 u) k+ O  方法二:& i0 |- L9 q2 }* G# H
  1)在代码编辑器窗口的对象中选择“通用”,在文本编辑区输入 Private Sub 过程名7 d4 k1 x; f) L/ q
  2)按回车键,即可创建一个Sub过程样板
, a" W) g( C2 w5 e! B  P  3)在新创建的过程中输入内容
0 ?  ]- ~" `  m+ F  3.Sub子过程的调用
/ B, R* p" A; W. i  (1) 用Call语句调用Sub过程2 l7 U- @# G" p  [# e
  语法:Call 过程名(实在参数表)4 _, V5 w+ }$ M1 E, O
  实在参数的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。' K: N" y, B. u7 G( H
  (2)把过程名作为一个语句来用6 B' z3 g# m! o5 N
  语法:过程名 [实参1[,实参2……]]
! I6 \0 d! `6 ~; z1 }+ e4 h* J  它与(1)的不同点是:去掉了关键字和实参列表的括号
, s7 p5 \1 e1 A8 K0 g& x/ g/ ~# E  如上例中可以改成:area a,b,c,w
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-17 02:50 , Processed in 0.207118 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表