VB考试教程:过程的使用之再谈Sub过程与Function过程的调用及使用
1.再谈子程序和函数程序的调用和使用。
调用过程的方式有很多种,这与应用程序中过程的类型、位置和用法有关。调用Sub过程不同于Function过程。在表达式中,调用Sub procedure是一个独立的语句,而调用function procedure只是表达式的一部分。Sub过程与函数的不同之处在于,它不按名称返回值。和Function过程一样,Sub过程也可以修改传递给它们的任何变量的值。
(1)调用Sub过程
有两种方法:
调用MyProc(FirstArgument,SecondArgument)
MyProc FirstArgument,SecondArgument
说明使用调用语法时,参数必须在括号中。如果省略Call关键字,还必须删除参数两边的括号。
(2)调用函数过程。
方法一:一般调用自定义函数过程的方法和调用VB内部函数过程的方法是一样的,就是在表达式中写名字。
方法二:也可以像调用Sub过程一样调用function过程,比如调用Function过程Year:
通话年份(现在)
今年
当以这种方式调用函数时,返回值将被丢弃。
一般来说,函数被分配给某些变量或属性。
(3)调用其他模块中的过程。
其他模块中的公共过程可以在项目中的任何地方调用。在其他模块中调用过程的各种方法取决于该过程是在窗体模块、类模块还是标准模块中。
调用表单模块中的过程:
所有表单模块的外部调用过程必须指向包含该过程的表单模块。如果表单模块Form1包含SomeSub过程,则语句“调用Form1。SomeSub(参数表)”可以用来调用Form1中的某个Sub过程。
调用类模块中的过程:
类模块中的过程类似于窗体中的调用过程。在类模块中,调用过程调用与过程一致的变量,并指向类实例。例如,DemoClass是Class1的实例:
Dim DemoClass作为新的Class1
DemoClass。SomeSub
但与forms不同的是,在引用一个类的实例时,不能用类名做限定词(比如不能用Class1。类似Form1的Sub。表单中的SomeSub)。您必须首先将一个类的实例声明为一个对象变量(如上面的DemoClass ),并用变量名引用它。
使用标准模块中的程序:
如果过程名是唯一的,则在调用时没有必要添加模块名。无论是在模块内部调用还是在模块外部调用,结果都将总是引用这个唯一的过程。在整个应用程序中,如果进程只出现在一个地方,那么这个进程就是唯一的。
如果两个以上的模块包含同名的过程,例如,当在模块1和模块2中都调用名为“CommonName”的过程时,有两种情况:
如果在同一个模块中调用公共过程,模块中的过程将直接运行。如果在模块2中直接调用“CommonName ”,将运行模块2中的“CommonName”过程,而不是模块1中的“CommonName”过程。
如果在Module1中调用Module2中的“CommonName”过程,则必须用Module名称和语句来限定它。应该使用CommonName(参数列表)。
在下面的练习中,将在前面的“七个幸运儿”程序中添加一个函数,用于计算游戏中的胜率(Spin中出现一个或多个7的百分比)。因此,名为Rate的函数和名为Spins的公共变量可以添加到标准模块中。然后在每次单击开始按钮时调用Rate函数。还在表单上新创建的标签中显示计算结果。
在表单上添加另一个标签,Name属性为lblRate,Caption属性为0.0%,ForeColor为红色,图像框的Stretch属性仍然设置为True。
界面如下:
在标准模块窗口中键入以下代码(添加一个名为Rate的函数和一个名为Spins的公共变量):
option explicit
public wins
public spins '定义一个公共变量来记录生成的随机数的总数,即按钮点击的次数。
-
函数Rate (hits,attempts) as string '生成名为Rate的函数
dim percent
percent = hits/attempts
Rate = format(percent," 0.0%")
end function
注意:Rate函数通过将Hits参数除以Attempts参数来确定胜率,然后使用Format函数来调整显示的结果。Rate函数被声明为字符串类型,因为Format函数的返回值是字符串。Hits参数和Attempts参数是这两个变量的占位符,它们将在函数调用期间传递给函数。比率函数是通用的,可用于任何数字或变量,而不仅仅是赢和旋转。
调用表单代码的Command1_Click事件过程。,其中添加了调用该函数的语句,如下所示:
subcommand 1 _ click()
randomize
image 1 . visible = false ' hide coin image
label 1 . caption = int(RND * 10)'以获得随机
Label2。caption = Int(Rnd * 10)
label 3caption = Int(Rnd * 10)
Spins = Spins+1
If(label 1。Caption = 7)或(Label2。Caption = 7) _[/br/ ]或(label3。caption = 7)然后
image1。visible = true
beep '当一个标题是7时,显示一串硬币并响
Wins = Wins+1 '以记录7产生的次数。
lblWins。Caption = "Wins:" & Wins
0条评论