Visual Basic COM基础之更多属性
2008-02-23 06:47:54来源:互联网 阅读 ()
我想,答案是肯定的。因为这种处理就称为"枚举"。
打开上一节的工程,让我们添加一些代码。
在CDog类中添加下列代码:
Public Enum CoatType
BigAndShaggy = 1
ShortCrewCut = 2
PoodleStyleAfro = 3
Unknown = 4
end Enum
关键词"Enum"就是用来定义枚举的,换句话说,它是可能选项的列表。各选项都有相应的数字,也就是说BigAndShaggy表示1,ShortCrewCut等于2,等等。
需要注意的是,当将枚举项相关信息添加在数据库中时,其相应的数值是非常有用的。由于"BigAndShaggy"实际代表的是数值1,所以可以直接将其插入到数据库的数值字段中。这就意味着,可以方便使用字符串来维护数据库。
所以,我们来创建一个Dog的Coat类型列表,并另外定义一个属性,将这些类型添加在CDog类中。
在类中声明下列变量:
Private udtCoat As CoatType
这个定义的私有变量用来保存即将添加的Coat类型属性,注意到udtCoat变量既不是字符串也不是整型,而是我们自己定义的枚举类型CoatType。
当类CDog打开时,选择"Tools"菜单中的"Add Procedure"命令,弹出相应的对话框;
Name编辑框中键入Coat;
选中"Property"选项按钮,然后单击[OK]。
系统自动产生下列代码框架:
Public Property Get Coat() As Variant
End Property
Public Property Let Coat(ByVal vNewValue As Variant)
End Property
但我们需要的却不是这个框架。代码中,"Variant"变量类型是能接收和处理任何类型数据。在我们定义的CDog类中,最后的属性是Age,它只能接受整型。但现在需要属性能接收CoatType列表中的数据类型,因此需要作下列修改:
将产生的代码中所有的"Variant"改成"CoatType";
然后,添加一些实际处理属性的代码。
在属性的Get过程中,添加下列代码:
Coat = udtCoat
在属性的Let过程中,添加下列代码:
udtCoat = vNewValue
切换到Form1;
将Command按钮的代码改为:
Dim MyDog As CDog
Set MyDog = New CDog
MyDog.Name = "Billy"
现在开始键入:MyDog.Coat =
奇迹出现了,当你敲下"="键时,出现一个含有可能选项的列表,从中我们可以选择一个。
完成代码的键入:MyDog.Coat = ShortCrewCut
下一步,我们将获取Coat属性的值。假如现在就来简单地在消息对话框中显示属性值,则只需返回选择项的值就可以了。例如,若选择了ShortCrewCut,其属性一定返回2。不信,可以试一试!
但这里采用另外一种方法,它是用If-Then语句判断Coat:
在Command按钮已有的代码后面添加下列代码:
If MyDog.Coat = BigAndShaggy Then
MsgBox "You have a big, bouncy, bushy pup!"
ElseIf MyDog.Coat = PoodleStyleAfro Then
MsgBox "Your pooch is pretty, petit and pooch-like!"
ElseIf MyDog.Coat = ShortCrewCut Then
MsgBox "Your dog is full of oomph, oomph and more oomph!"
ElseIf MyDog.Coat = Unknown Then
MsgBox "I have no idea about your dog. I don't think " & _
"you do either!"
End If
这里的代码只是简单判断Coat属性值,并显示相应的消息对话框。当然,这里也可以使用"Select Case"语句。
最后,我们添加最后一条语句来释放计算机内存:
在Command按钮已有的代码后面添加下列代码:
Set MyDog = Nothing
按F5运行程序,并单击Command按钮测试一下。
结果怎样?
上一篇: Visual Basic COM基础讲座之属性
下一篇: Visual Basic COM基础讲座之类的建立
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash