vb6.0第四课

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/jywlchuang/article/details/102656702

一、集合(collection)
Dim col as new collection
1、方法:
(1)count:统计对象数目。返回值为长整型,且在设计和运行时为只读。
(2)add:向集合添加一个元素
(3)remove:从集合中删除某一个元素
(4)item:从集合中获取指定的元素

2、控件集合(controls集合)
controls:是窗体上的所有对象的统称。controls方法与collection方法一样:count、add、remove、item。
如:
(1)动态创建textbox控件:

dim text as textbox
set text=controls.add("vb.textbox","text")      '动态创建一个name为text的textbox
text.visable=true

(2)将窗体上所有的textbox控件中显示“VB”

dim i as object
for each  i   in me.controls
      if typename(i)="textbox"   then
         i.text="VB"
      end if 
next i

二、过程
过程:就是一个功能相对独立的程序逻辑单元,即一段独立的程序代码。VB程序一般都是由过程组成的。
分为:事件过程、通用过程。
1、事件过程:click、load、change等。
2、通用过程:多个事件过程需要使用的一段相同的程序代码。它可以单独建立、供事件过程或其他过程调用。分为:子过程(sub过程)、函数过程(function过程)和属性过程(property过程)。
(1)sub过程不返回值
(2)functiion过程返回一个值
(3)property过程可以返回和设置窗体、标准模块以及类模块,也可以设置对象的属性。
(一)事件过程:是附加在窗体和控件上的过程。当VB中的对象对一个事件的发生作出认定时便自动用该事件的名字调用该事件的过程。如按钮的单击事件过程。

Private sub command_click()
     label1.caption="hello the world !"
end sub

1、调用事件过程
(1)使用call语句
call <事件过程名> [(参数列表)]
如调用command1的click事件过程。

  call command1_click

使用call语句时,参数列表必须放在括号内。
(2)直接使用过程名称
<事件过程名> [<参数列表>]
参数列表不能用括号括起来。

2、子过程(sub过程)
子过程也可称为sub过程或通用过程,用来完成特定的任务。使用sub过程首先要建立它,然后直接使用过程名或使用call语句调用。
(1)建立子过程
① 直接在代码窗口中输入
语法:
[Private] [Public] [Static] sub 子过程名(参数列表)
<语句>
[exit sub]
<语句>
end sub

②使用“添加过程”对话框:工具→添加过程→打开“添加过程”对话框→输入子过程“名称”

option explicit
'子过程的定义
'子过程带有两个参数
Private sub subcomputearea(lenth, thewidth)
     lblarea.caption=val(length)*val(thewidth)  '计算矩形的面积
end sub    

(2)调用子过程
①使用call:
call <子过程> [ (参数列表) ]
如: call subcomputearea( txtlength, txtwidth)
使用call语句时,参数列表必须放在括号内。
②直接使用过程名称
subcomputearea txtlength, txtwidth

(3)调用其他模块中的子过程
①调用窗体中的子过程
所有窗体模块的外部调用必须指向包含此过程的窗体模块。如果在窗体模块form1中包含mysub子过程,则可用下面语句进行调用。
call form1.mysub(参数列表)

②调用类模块中的子过程
与调用窗体中的子过程类似。例如,democlass是类class1的实例
dim democlass as new class1
democlass.somesub
但是不同于窗体的是,在引用一个类的实例时,不能用类名作限定符,必须首先声明类的实例为对象变量(这个例子中是democlass)并用变量名引用它。

③调用标准模块中的子过程
如果子过程名是唯一的,则不必在调用时加模块名。无论是在模块内,还是在模块外调用。
如果两个以上的模块都包含同名的子过程,那就有必须用模块名来限定。在同一模块内调用一个公用过程就会运行该模块内的过程。例如,对于module1和modeule2中名为commonname的子过程,从module2中调用commonname子过程则运行module2中的commonname子过程。而不1中的commonname子过程。此时就必须指定模块名,语句如下:
module1.commonname(参数列表)
module2.commonname(参数列表)

(三)Function过程
与sub过程不同的是:function过程可以返回一个值给程序调用。
1、建立function过程
[Private] [Public] [Static] function 函数名[(参数列表)] [as 类型]
<语句>
[exit function]
<语句>
end function
As子句决定函数过程返回值的数据类型。如果省略as子句,函数过程返回值的数据类型为变体型。 因此建立在实际编程中,使用as子句。

2、调用函数过程
函数过程也可称为用户自定义的函数。因此它与调用VB中的内部函数没有区别,即将一个函数的返回值赋给一个变量。语法如下:
变量名=函数名(参数列表)
注意:如果没有函数名,则函数过程将返回一个默认值:数值函数返回0,字符串函数返回一个零长度字符串,即空字符串,变体函数返回empty。如果在返回对象引用的函数过程中没有将对象引用通过set赋给函数名,则函数过程返回nothing.

函数过程与子过程不同之处是:用函数过程可以通过过程名返回值,但只能返回一个值;子过程不能通过过程名返回值,但可以通过参数返回值,并可以返回多个值。
相同点:都可以修改传递给它们的任何变量的值。
特别注意:如果在建立过程中,括号没有参数,那么VB不会传递任何参数,但是,如果调用过程时使用了参数,则会出现错误。

猜你喜欢

转载自blog.csdn.net/jywlchuang/article/details/102656702