linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > Basic >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·VB读取文件内容的简单方法
·用VB查询数据库记录四法
·Visual Basic串口通信程序设计
·基于VB6.0射击游戏实例
·为你的VB程序程序加密(VB新手
·VB新手常见问题解答
·什么是BASIC语言
·VB的坐标系统综述
·Visual Basic变态用法之函数指
·如何编写高质量的VB代码
·VB COM基础之ActiveX EXEs
·菜鸟入门:VB编程规约
·Visual Basic代码优化的六条定
·在VB应用程序中调用Excel2000
·VB COM基础之创建第一个COM对象
最新文章
·VB2005中开发新一代控制台应用
·VB的坐标系统综述
·变量的作用域与存活期
·VBScript 数据类型
·为你的VB程序程序加密(VB新手
·VB新手常见问题解答
·用VB开发即时战略游戏
·窗体迁移大法
·VB编程的几个API函数的应用问题
·VB编程的一些基础的问题
·利用VB6.0开发基于IIS的应用程
·在VB应用程序中调用Excel2000
·菜鸟入门:VB编程规约
·Visual Basic 安装程序的制作
·.NET和VB编程创建SQL Server
Google
 
Visual Basic COM基础之更多属性
[ 作者:  加入时间:2007-10-19 12:59:38  来自:Linux联盟收集整理 ]
有时候,为了更好地处理类往往需更多的属性。例如,假如你有四种不同的客户群:集团、较大、较小和新的客户类型,或者一个用于搜索的类中有三种不同的搜索方式:软盘、硬盘和网络。那么,能不能最好从选项列表中选择一个,而不是用不能理解的数字或文本来设置相关属性? ifqLinux联盟
ifqLinux联盟
   我想,答案是肯定的。因为这种处理就称为"枚举"。 ifqLinux联盟
ifqLinux联盟
ifqLinux联盟
ifqLinux联盟
   打开上一节的工程,让我们添加一些代码。 ifqLinux联盟
ifqLinux联盟
   在CDog类中添加下列代码: ifqLinux联盟
ifqLinux联盟
  Public Enum CoatType ifqLinux联盟
ifqLinux联盟
    BigAndShaggy = 1 ifqLinux联盟
ifqLinux联盟
    ShortCrewCut = 2 ifqLinux联盟
ifqLinux联盟
    PoodleStyleAfro = 3 ifqLinux联盟
ifqLinux联盟
    Unknown = 4 ifqLinux联盟
ifqLinux联盟
   end Enum
ifqLinux联盟
   关键词"Enum"就是用来定义枚举的,换句话说,它是可能选项的列表。各选项都有相应的数字,也就是说BigAndShaggy表示1,ShortCrewCut等于2,等等。 ifqLinux联盟
ifqLinux联盟
   需要注意的是,当将枚举项相关信息添加在数据库中时,其相应的数值是非常有用的。由于"BigAndShaggy"实际代表的是数值1,所以可以直接将其插入到数据库的数值字段中。这就意味着,可以方便使用字符串来维护数据库。 ifqLinux联盟
ifqLinux联盟
   所以,我们来创建一个Dog的Coat类型列表,并另外定义一个属性,将这些类型添加在CDog类中。 ifqLinux联盟
ifqLinux联盟
   在类中声明下列变量: ifqLinux联盟
ifqLinux联盟
   Private udtCoat As CoatType ifqLinux联盟
ifqLinux联盟
   这个定义的私有变量用来保存即将添加的Coat类型属性,注意到udtCoat变量既不是字符串也不是整型,而是我们自己定义的枚举类型CoatType。 ifqLinux联盟
ifqLinux联盟
   当类CDog打开时,选择"Tools"菜单中的"Add Procedure"命令,弹出相应的对话框; ifqLinux联盟
ifqLinux联盟
   Name编辑框中键入Coat; ifqLinux联盟
ifqLinux联盟
   选中"Property"选项按钮,然后单击[OK]。 ifqLinux联盟
ifqLinux联盟
   系统自动产生下列代码框架: ifqLinux联盟
ifqLinux联盟
  Public Property Get Coat() As Variant ifqLinux联盟
ifqLinux联盟
   End Property ifqLinux联盟
ifqLinux联盟
   Public Property Let Coat(ByVal vNewValue As Variant) ifqLinux联盟
ifqLinux联盟
   End Property
ifqLinux联盟
   但我们需要的却不是这个框架。代码中,"Variant"变量类型是能接收和处理任何类型数据。在我们定义的CDog类中,最后的属性是Age,它只能接受整型。但现在需要属性能接收CoatType列表中的数据类型,因此需要作下列修改: ifqLinux联盟
ifqLinux联盟
   将产生的代码中所有的"Variant"改成"CoatType"; ifqLinux联盟
ifqLinux联盟
   然后,添加一些实际处理属性的代码。 ifqLinux联盟
ifqLinux联盟
   在属性的Get过程中,添加下列代码: ifqLinux联盟
ifqLinux联盟
Coat = udtCoat
ifqLinux联盟
   在属性的Let过程中,添加下列代码: ifqLinux联盟
ifqLinux联盟
udtCoat = vNewValue
ifqLinux联盟
   切换到Form1; ifqLinux联盟
ifqLinux联盟
   将Command按钮的代码改为: ifqLinux联盟
ifqLinux联盟
Dim MyDog As CDog ifqLinux联盟
Set MyDog = New CDog ifqLinux联盟
MyDog.Name = "Billy"
ifqLinux联盟
   现在开始键入:MyDog.Coat = ifqLinux联盟
ifqLinux联盟
   奇迹出现了,当你敲下"="键时,出现一个含有可能选项的列表,从中我们可以选择一个。 ifqLinux联盟
ifqLinux联盟
   完成代码的键入:MyDog.Coat = ShortCrewCut ifqLinux联盟
ifqLinux联盟
   下一步,我们将获取Coat属性的值。假如现在就来简单地在消息对话框中显示属性值,则只需返回选择项的值就可以了。例如,若选择了ShortCrewCut,其属性一定返回2。不信,可以试一试! ifqLinux联盟
ifqLinux联盟
   但这里采用另外一种方法,它是用If-Then语句判断Coat: ifqLinux联盟
ifqLinux联盟
   在Command按钮已有的代码后面添加下列代码: ifqLinux联盟
ifqLinux联盟
  If MyDog.Coat = BigAndShaggy Then ifqLinux联盟
ifqLinux联盟
    MsgBox "You have a big, bouncy, bushy pup!" ifqLinux联盟
ifqLinux联盟
   ElseIf MyDog.Coat = PoodleStyleAfro Then ifqLinux联盟
ifqLinux联盟
    MsgBox "Your pooch is pretty, petit and pooch-like!" ifqLinux联盟
ifqLinux联盟
   ElseIf MyDog.Coat = ShortCrewCut Then ifqLinux联盟
ifqLinux联盟
    MsgBox "Your dog is full of oomph, oomph and more oomph!" ifqLinux联盟
ifqLinux联盟
   ElseIf MyDog.Coat = Unknown Then ifqLinux联盟
ifqLinux联盟
    MsgBox "I have no idea about your dog. I don't think " & _ ifqLinux联盟
ifqLinux联盟
        "you do either!" ifqLinux联盟
ifqLinux联盟
   End If
ifqLinux联盟
   这里的代码只是简单判断Coat属性值,并显示相应的消息对话框。当然,这里也可以使用"Select Case"语句。 ifqLinux联盟
ifqLinux联盟
   最后,我们添加最后一条语句来释放计算机内存: ifqLinux联盟
ifqLinux联盟
   在Command按钮已有的代码后面添加下列代码: ifqLinux联盟
ifqLinux联盟
Set MyDog = Nothing
ifqLinux联盟
   按F5运行程序,并单击Command按钮测试一下。 ifqLinux联盟
ifqLinux联盟
   结果怎样? Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·Visual Basic COM基础之兼容性  (2007-10-19 13:07:40)
 ·Visual Basic COM基础之事件  (2007-10-19 13:01:19)
 ·Visual Basic COM基础之属性  (2007-10-19 12:58:54)
 ·Visual Basic COM基础之类的建立  (2007-10-19 12:58:10)
 ·Visual Basic COM基础讲座  (2007-10-19 12:57:22)