zoukankan      html  css  js  c++  java
  • VB获取对象成员

    VB获取对象成员,包括常量、方法、属性等。

    使用的 TypeLib Information库,一般系统中都有,如果找不到可以百度一下"tlbinf32.dll",下载下来注册就行了。

    一个简单的Demo

    Option Explicit

    Private objCurrent As Object

    Private Sub Command1_Click()
    Call AddListItem(Text1.Text, List1)
    End Sub

    Private Sub AddListItem(objName As String, lst As ListBox)
    On Error GoTo err_exit:
    Dim i As Long
    Dim oTLB As InterfaceInfo
    Dim obj As Object
    Set objCurrent = Nothing
    Set obj = CreateObject(objName)
    Set objCurrent = obj
    Set oTLB = TLI.InterfaceInfoFromObject(obj)

    lst.Clear

    For i = 1 To oTLB.Members.Count
    Select Case oTLB.Members(i).InvokeKind
    Case TLI.INVOKE_CONST '常量
    lst.AddItem oTLB.Members(i).Name
    Case TLI.INVOKE_EVENTFUNC '事件
    lst.AddItem oTLB.Members(i).Name
    Case TLI.INVOKE_FUNC '方法
    lst.AddItem oTLB.Members(i).Name
    Case TLI.INVOKE_PROPERTYGET 'get属性
    lst.AddItem oTLB.Members(i).Name
    Case TLI.INVOKE_PROPERTYPUT 'let属性
    lst.AddItem oTLB.Members(i).Name
    Case TLI.INVOKE_PROPERTYPUTREF 'set属性
    lst.AddItem oTLB.Members(i).Name
    Case TLI.INVOKE_UNKNOWN '未知
    lst.AddItem oTLB.Members(i).Name
    End Select

    Next i
    err_exit:
    End Sub

    Private Function GetHelpString(obj As Object, strMember As String) As String
    ' If obj = Nothing Then
    ' GetHelpString = ""
    ' Exit Function
    ' End
    Dim i As Long
    Dim oTLB As InterfaceInfo
    Set oTLB = TLI.InterfaceInfoFromObject(obj)

    For i = 1 To oTLB.Members.Count
    If oTLB.Members(i).Name = strMember Then
    GetHelpString = oTLB.Members(i).HelpString
    Exit Function
    End If
    Next i
    End Function

    Private Sub List1_Click()
    List1.ToolTipText = GetHelpString(objCurrent, List1.Text)

    Text2.Text = GetHelpString(objCurrent, List1.Text)
    End Sub

    在输入框中输入要创建对象的完整类名,如“scripting.filesystemobject”,点击按钮,即可遍历对象中的成员,显示在列表中,选中某个成员,提示该成员的帮助信息。

  • 相关阅读:
    Windows Azure 基本操作手册
    如何通过Visual Studio发布Azure应用程序
    Windows Azure的故障检测和重试逻辑
    如何在Azure上动态配置IP地址
    vue2.0像子组件传递新数据(插槽)
    iview admin 动态加载左侧菜单栏?
    iViewadmin数据请求跨域处理
    angular4的多环境(测试环境与开发环境,生产环境)
    页面编译,及部署
    resolve守卫
  • 原文地址:https://www.cnblogs.com/wanzhongjun/p/10806009.html
Copyright © 2011-2022 走看看