你的位置:创意公社- ideaer >> >> 程序开发 >> 详细内容 在线投稿

VB编程基础教程11–过程

排行榜 打印 发给朋友 举报 发布者:zv6638
热度356票  浏览109次 【共0条评论】【我要评论 时间:2010年5月24日 08:07
创意公社- ideaerTOV8y0[F}Oq

过程概述创意公社- ideaer _)_:H ["^n
创意公社- ideaer0e8J7|f$rWeO
将程序分割成较小的逻辑部件就可以简化程序设计任务。称这些部件为过程,它们可以变成增强和扩展 visual basic 的构件。创意公社- ideaerqN'K&}*G.mn!^4}
过程可用于压缩重复任务或共享任务,例如,压缩频繁的计算、文本与控件操作和数据库操作。创意公社- ideaerH1V.utr5Kf3o0f
用过程编程有两大好处: 创意公社- ideaer6Y JH)MN
过程可使程序划分成离散的逻辑单元,每个单元都比无过程的整个程序容易调试。
A)t4G;I:^0RvK`1创意公社- ideaerHK*d7e5? zxWm[
一个程序中的过程,往往不必修改或只需稍作改动,便可以成为另一个程序的构件。
s1X(q&e+yh3E`1在 visual basic 中使用下列几种过程:
)B2W1jAE3x1sub 过程不返回值。 创意公社- ideaeriMu3N(ODtdF

#sq|tc!r,p {1function 过程返回值。创意公社- ideaer.},x!tcQ9s I P}
创意公社- ideaer0B}L$i+b
property 过程返回并指定值,以及设置对象引用。 创意公社- ideaerliF0K"x.` n
详细信息 关于属性过程,请参阅“用对象编程”。
{[6M?O3D1关于子过程和函数过程,请参阅下面的主题:
#R!U(i*ir9s;}.H*e Wt1子过程 介绍子过程及其使用。
-BE6pT3gq1函数过程 介绍函数过程及其使用。 创意公社- ideaer3QgiX We{
使用过程 介绍从应用程序内部调用过程。
*F Z3w\4f@(N1向过程传递参数 讨论用参数向过程传递数据。
N/_#W6t7d1
&Vd!F&{_ r}[1
%sDa k8jX#P6M1创意公社- ideaer|4dB%nZ[D5@Ne
sub 过程
d9@%|\'R2l1子过程是在响应事件时执行的代码块。将模块中的代码分成子过程后,在应用程序中查找和修改代码变得更容易了。创意公社- ideaertH{ Qj#]
子过程的语法是:
;qKN0hR#N1[private|public][static]sub procedurename (arguments)
[yY+K h;tq)]3U6\q;W2V1statements创意公社- ideaerH~v{x&M @ zt
end sub
5u U8g7`[6o0f7D[k1每次调用过程都会执行 sub 和 end sub 之间的 statements。可以将子过程放入标准模块、类模块和窗体模块中。按照缺省规定,所有模块中的子过程为 public(公用的),这意味着在应用程序中可随处调用它们。
,k Zj(Ct^+Q[].s9b_1过程的 arguments 类似于变量声明,它声明了从调用过程传递进来的值。创意公社- ideaerry+l s0ZC!@
在 visual basic 中应区分通用过程和事件过程这两类子过程。
&w@Jo0Nk1通用过程
E}4G7kP{)CG1通用过程告诉应用程序如何完成一项指定的任务。一旦确定了通用过程,就必须专由应用程序来调用。反之,直到为响应用户引发的事件或系统引发的事件而调用事件过程时,事件过程通常总是处于空闲状态。创意公社- ideaer6l*X~^t
为什么要建立通用过程呢?理由之一就是,几个不同的事件过程也许要执行同样的动作。将公共语句放入一分离开的过程(通用过程)并由事件过程来调用它,诚为编程上策。这样一来就不必重复代码,也容易维护应用程序。例如,vcr 示例应用程序使用了一个通用过程,几个不同滚动按钮的 click 事件都调用这个通用过程。click 事件中的代码调用按钮管理器的子过程,子过程运行自身的代码,然后将控制返回到 click 事件过程。
%M:}i1Q9qD/Cr h1
2J`)K4|u9b8}1事件过程创意公社- ideaer y'R ZC6dSw+X'w
当 visual basic 中的对象对一个事件的发生作出认定时,便自动用相应于事件的名字调用该事件的过程。因为名字在对象和代码之间建立了联系,所以说事件过程是附加在窗体和控件上的。
;U;RtWS:m |O4l1一个控件的事件过程将控件的(在 name 属性中规定的)实际名字、下划线 (_) 和事件名组合起来。例如,如果希望在单击了一个名为 cmdplay 的命令按钮之后,这个按钮会调用事件过程,则要使用 cmdplay_click 过程。创意公社- ideaerI5k m5s U:U
创意公社- ideaer9Vz{0e.C:ik!o1f$d{L
一个窗体事件过程将词汇 “form”、下划线和事件名组合起来。如果希望在单击窗体之后,窗体会调用事件过程,则要使用 form_click 过程。(和控件一样,窗体也有唯一的名字,但不能在事件过程的名字中使用这些名字。)如果正在使用 mdi 窗体,则事件过程将词汇 ” mdiform ” 、下划线和事件名组合起来,如 mdiform_load。
a qd_ t2w1所有的事件过程使用相同的语法。
*| Gw5c^ P(RZ(O \2@1控件事件的语法 窗体事件的语法
a/AHHN f1private sub controlname_eventname (arguments )
1FDHk2m*O@Tj1statements
D]$U9up4]y;`"{r1end sub
9a&RPot#|$GX y1private sub form_eventname (arguments)创意公社- ideaer5b%D XoyA
statements创意公社- ideaerF~4[%o2g|(_l5z
end sub
}7eh:o`%h_Md^*S1O1
fx8[6cZYa1虽然可以自己编写事件过程,但使用 visual basic 提供的代码过程会更方便,这个过程自动将正确的过程名包括进来。从“对象框”中选择一个对象,从“过程框”中选择一个过程,就可在“代码编辑器” 窗口选择一个模板。创意公社- ideaer;P~!|2V*L*Gvs |
在开始为控件编写事件过程之前先设置控件的 name 属性,这不失为一个好主意。如果对控件附加一个过程之后又更改控件的名字,那么也必须更改过程的名字,以符合控件的新名字。否则,visual basic 无法使控件和过程相符。过程名与控件名不符时,过程就成为通用过程。创意公社- ideaerz2R1G-D.Hr
详细信息 visual basic 可识别各种窗体和控件的各种事件。关于所有事件的说明,请参阅语言参考。创意公社- ideaeriW y;C5D'w B

J*L(g.`k[2H~5Hb^1
%g9Cb k,}Lu1
G K)ua+]Z] F1funtion 过程创意公社- ideaer+I2O8l9_$y
创意公社- ideaer{ O%R1v\
visual basic 包含内置的、或内部的函数,如 sqr、cos 或 chr。此外,还可用 function 语句编写自己的 function 过程。
3Fr `c2C,fH R9l1函数过程的语法是:
BjDV0N1RoWY5{1private|public][static]function procedurename (arguments) [as type]创意公社- ideaer1h&hS!}"kk8Sl3ju
statements创意公社- ideaerpT'c7sq-k1f9z
end function创意公社- ideaer,n AP w7hS7?&j
与 sub 过程一样,function 过程也是一个独立的过程,可读取参数、执行一系列语句并改变其参数的值。与子过程不同,function 过程可返回一个值到调用的过程。在sub 过程与function 过程之间有三点区别: 创意公社- ideaeruEv@oY
一般说来,让较大的语句或表达式的右边包含函数过程名和参数 (returnvalue = function),这就调用了函数。
n i F{*W5R1
K6\K.[P { ]U1与变量完全一样,函数过程有数据类型。这就决定了返回值的类型。(如果没有 as 子句,缺省的数据类型为 variant。)
)r;q(X1|:HP'E1创意公社- ideaer.k2nG h8y.S x!@ S o:E
给 procedurename 自身赋一个值,就可返回这个值。function 过程返回一个值时,该值可成为较大表达式的一部分。
]6K%`/FZ{1例如,下面是已知直角三角形两直角边的值,计算第三边(斜边)的函数:创意公社- ideaer4~8c%ajhJ#??
function hypotenuse (a as integer, b as integer) as string
)zC6fEX2H,E&p1   hypotenuse = sqr (a ^ 2 + b ^ 2)
U%d Z.XC+M1end function创意公社- ideaer,f [}6HB8PGS1B|
在 visual basic 中调用 function 过程的方法和调用任何内部函数的方法是一样的:
z7P`8qX-~+gv1label1.caption = hypotenuse(cint(text1.text), _创意公社- ideaerO"l#K#kcv6{ r`1N@
cint(text2.text))创意公社- ideaer s(v}7U/R#q-\I
strx = hypotenuse (width, height)
yn1K5?U-Ht Dm1详细信息 关于函数过程的详细信息,请参阅语言参考中的“function 语句”。调用各种类型的过程的技巧,在本章后面的“调用过程”部分有详细讨论。

;fN7D`V\1
顶:13 踩:43
对本文中的事件或人物打分:
当前平均分:-1.89 (109次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.2 (60次打分)
【已经有131人表态】
42票
感动
10票
路过
15票
高兴
14票
难过
13票
搞笑
13票
愤怒
10票
无聊
14票
同情
上一篇 下一篇
发表评论
换一张

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】