VB编程基础教程11-过程
- 爱奇艺限时半价 | 30+正版软件打折 | PD 虚拟机 7 折 | RackNerd 黑五 | 京东 Plus ¥69
过程概述
将程序分割成较小的逻辑部件就可以简化程序设计任务。称这些部件为过程,它们可以变成增强和扩展 visual basic 的构件。
过程可用于压缩重复任务或共享任务,例如,压缩频繁的计算、文本与控件操作和数据库操作。
用过程编程有两大好处:
过程可使程序划分成离散的逻辑单元,每个单元都比无过程的整个程序容易调试。
一个程序中的过程,往往不必修改或只需稍作改动,便可以成为另一个程序的构件。
在 visual basic 中使用下列几种过程:
sub 过程不返回值。
function 过程返回值。
property 过程返回并指定值,以及设置对象引用。
详细信息 关于属性过程,请参阅“用对象编程”。
关于子过程和函数过程,请参阅下面的主题:
子过程 介绍子过程及其使用。
函数过程 介绍函数过程及其使用。
使用过程 介绍从应用程序内部调用过程。
向过程传递参数 讨论用参数向过程传递数据。
sub 过程
子过程是在响应事件时执行的代码块。将模块中的代码分成子过程后,在应用程序中查找和修改代码变得更容易了。
子过程的语法是:
[private|public][static]sub procedurename (arguments)
statements
end sub
每次调用过程都会执行 sub 和 end sub 之间的 statements。可以将子过程放入标准模块、类模块和窗体模块中。按照缺省规定,所有模块中的子过程为 public(公用的),这意味着在应用程序中可随处调用它们。
过程的 arguments 类似于变量声明,它声明了从调用过程传递进来的值。
在 visual basic 中应区分通用过程和事件过程这两类子过程。
通用过程
通用过程告诉应用程序如何完成一项指定的任务。一旦确定了通用过程,就必须专由应用程序来调用。反之,直到为响应用户引发的事件或系统引发的事件而调用事件过程时,事件过程通常总是处于空闲状态。
为什么要建立通用过程呢?理由之一就是,几个不同的事件过程也许要执行同样的动作。将公共语句放入一分离开的过程(通用过程)并由事件过程来调用它,诚为编程上策。这样一来就不必重复代码,也容易维护应用程序。例如,vcr 示例应用程序使用了一个通用过程,几个不同滚动按钮的 click 事件都调用这个通用过程。click 事件中的代码调用按钮管理器的子过程,子过程运行自身的代码,然后将控制返回到 click 事件过程。
事件过程
当 visual basic 中的对象对一个事件的发生作出认定时,便自动用相应于事件的名字调用该事件的过程。因为名字在对象和代码之间建立了联系,所以说事件过程是附加在窗体和控件上的。
一个控件的事件过程将控件的(在 name 属性中规定的)实际名字、下划线 (_) 和事件名组合起来。例如,如果希望在单击了一个名为 cmdplay 的命令按钮之后,这个按钮会调用事件过程,则要使用 cmdplay_click 过程。
一个窗体事件过程将词汇 "form"、下划线和事件名组合起来。如果希望在单击窗体之后,窗体会调用事件过程,则要使用 form_click 过程。(和控件一样,窗体也有唯一的名字,但不能在事件过程的名字中使用这些名字。)如果正在使用 mdi 窗体,则事件过程将词汇 " mdiform " 、下划线和事件名组合起来,如 mdiform_load。
所有的事件过程使用相同的语法。
控件事件的语法 窗体事件的语法
private sub controlname_eventname (arguments )
statements
end sub
private sub form_eventname (arguments)
statements
end sub
虽然可以自己编写事件过程,但使用 visual basic 提供的代码过程会更方便,这个过程自动将正确的过程名包括进来。从“对象框”中选择一个对象,从“过程框”中选择一个过程,就可在“代码编辑器” 窗口选择一个模板。
在开始为控件编写事件过程之前先设置控件的 name 属性,这不失为一个好主意。如果对控件附加一个过程之后又更改控件的名字,那么也必须更改过程的名字,以符合控件的新名字。否则,visual basic 无法使控件和过程相符。过程名与控件名不符时,过程就成为通用过程。
详细信息 visual basic 可识别各种窗体和控件的各种事件。关于所有事件的说明,请参阅语言参考。
funtion 过程
visual basic 包含内置的、或内部的函数,如 sqr、cos 或 chr。此外,还可用 function 语句编写自己的 function 过程。
函数过程的语法是:
private|public][static]function procedurename (arguments) [as type]
statements
end function
与 sub 过程一样,function 过程也是一个独立的过程,可读取参数、执行一系列语句并改变其参数的值。与子过程不同,function 过程可返回一个值到调用的过程。在sub 过程与function 过程之间有三点区别:
一般说来,让较大的语句或表达式的右边包含函数过程名和参数 (returnvalue = function),这就调用了函数。
与变量完全一样,函数过程有数据类型。这就决定了返回值的类型。(如果没有 as 子句,缺省的数据类型为 variant。)
给 procedurename 自身赋一个值,就可返回这个值。function 过程返回一个值时,该值可成为较大表达式的一部分。
例如,下面是已知直角三角形两直角边的值,计算第三边(斜边)的函数:
function hypotenuse (a as integer, b as integer) as string
hypotenuse = sqr (a ^ 2 + b ^ 2)
end function
在 visual basic 中调用 function 过程的方法和调用任何内部函数的方法是一样的:
label1.caption = hypotenuse(cint(text1.text), _
cint(text2.text))
strx = hypotenuse (width, height)
详细信息 关于函数过程的详细信息,请参阅语言参考中的“function 语句”。调用各种类型的过程的技巧,在本章后面的“调用过程”部分有详细讨论。
/ 关注 “异次元软件世界” 微信公众号,获取最新软件推送 /
如本文“对您有用”,欢迎随意打赏异次元,让我们坚持创作!
赞赏一杯咖啡