Implements 的作用是什么
用 Implements 加载一个.tlb 文件,为什么每次打开工程都要重新加载

解决方案 »

  1.   

    VB 5.0以后提供了一个Implements语句,它使一个类能够使用其它类的定义的过程和数据,
    这有些接近C++中的继承
    ---------------------------------------------------------------Implements 语句示例
    下面的示例说明如何使用 Implements 语句来编写多个类都可以使用的一系列声明。通过 Implements 语句共享这些声明,所有的类都不必再自己进行声明。假设有两个窗体。其中 Selector 窗体有两个按钮,Customer Data 和 Supplier Data。若要输入客户或供应商的名称及地址信息,用户就单击 Selector 窗体的 Customer Date 按钮或 Supplier Date 按钮,然后使用 Data Entry 窗体来输入名称和地址。Data Entry 窗体有两个文本字段,Name 和 Address。下面的共享声明的代码位于称为 PersonalData 的类中:Public Name As String
    Public Address As String有关处理客户数据的代码位于 Customer 类模块:Implements PersonalData
    Private Property Get PersonalData_Address() As String
    PersonalData_Address = "CustomerAddress"
    End PropertyPrivate Property Let PersonalData_Address(ByVal RHS As String)
    '
    End PropertyPrivate Property Let PersonalData_Name(ByVal RHS As String)
    '
    End PropertyPrivate Property Get PersonalData_Name() As String
    PersonalData_Name = "CustomerName"
    End Property有关处理供应商数据的代码位于 Supplier 类模块:Implements PersonalDataPrivate Property Get PersonalData_Address() As String
    PersonalData_Address = "SupplierAddress"
    End PropertyPrivate Property Let PersonalData_Address(ByVal RHS As String)
    '
    End PropertyPrivate Property Let PersonalData_Name(ByVal RHS As String)
    '
    End PropertyPrivate Property Get PersonalData_Name() As String
    PersonalData_Name = "SupplierName"
    End Property下面的代码负责处理 Selector 窗体:Private cust As New Customer
    Private sup As New SupplierPrivate Sub Command1_Click()
    Dim frm2 As New Form2
        Set frm2.PD = cust
        frm2.Show 1
    End SubPrivate Sub Command2_Click()
    Dim frm2 As New Form2
        Set frm2.PD = sup
        frm2.Show 1
    End Sub下面的代码负责处理 Data Entry 窗体:Private m_pd As PersonalData
    Private Sub Form_Load()
        With m_pd
            Text1 = .Name
            Text2 = .Address
        End With
    End Sub
    Public Property Set PD(Data As PersonalData)
        Set m_pd = Data
    End Property
      

  2.   

    Implements就是自动地接受另一个类提供的所有接口(过程属性的签名等),这样你就可以用同样的方法(名称)访问这两个类。但是这和面向对象概念中的类继承完全是两回事。可以说Implements只是继承了一个空壳子,让自己的外观和另一个类一样,而内部的功能则可以通过重写代码而变得不同。