Form1.frm
上传用户:huyzong
上传日期:2007-01-02
资源大小:7k
文件大小:7k
源码类别:

组合框控件

开发平台:

Visual C++

  1. VERSION 5.00
  2. Object = "{7B914A58-6271-11D2-86B8-0040055C08D9}#1.0#0"; "XPropertiesWnd.ocx"
  3. Begin VB.Form Form1 
  4.    Caption         =   "Form1"
  5.    ClientHeight    =   6540
  6.    ClientLeft      =   7740
  7.    ClientTop       =   2070
  8.    ClientWidth     =   4920
  9.    LinkTopic       =   "Form1"
  10.    ScaleHeight     =   6540
  11.    ScaleWidth      =   4920
  12.    Begin XPROPERTIESWNDLib.XPropertiesWnd FunctionxProp 
  13.       Height          =   2655
  14.       Left            =   120
  15.       TabIndex        =   3
  16.       Top             =   3360
  17.       Width           =   4695
  18.       _Version        =   65536
  19.       _ExtentX        =   8281
  20.       _ExtentY        =   4683
  21.       _StockProps     =   5
  22.       BackColor       =   8421504
  23.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  24.          Name            =   "Tahoma"
  25.          Size            =   8.25
  26.          Charset         =   0
  27.          Weight          =   400
  28.          Underline       =   0   'False
  29.          Italic          =   0   'False
  30.          Strikethrough   =   0   'False
  31.       EndProperty
  32.       PagesAndItems   =   "InheritedClasses#{#}#"
  33.       Animation       =   -1  'True
  34.       BeginProperty ItemFont {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  35.          Name            =   "Tahoma"
  36.          Size            =   8.25
  37.          Charset         =   0
  38.          Weight          =   400
  39.          Underline       =   0   'False
  40.          Italic          =   0   'False
  41.          Strikethrough   =   0   'False
  42.       EndProperty
  43.    End
  44.    Begin VB.CommandButton Open 
  45.       Caption         =   "Open"
  46.       Height          =   375
  47.       Left            =   4200
  48.       TabIndex        =   2
  49.       Top             =   6120
  50.       Width           =   615
  51.    End
  52.    Begin VB.TextBox FileName 
  53.       Height          =   375
  54.       Left            =   120
  55.       TabIndex        =   1
  56.       Text            =   "C:_usersMihaiProjectActiveXXFloorWndVersion 1.02DebugXFloorWnd.ocx"
  57.       Top             =   6120
  58.       Width           =   3975
  59.    End
  60.    Begin XPROPERTIESWNDLib.XPropertiesWnd TypeLibxProp 
  61.       Height          =   3135
  62.       Left            =   120
  63.       TabIndex        =   0
  64.       TabStop         =   0   'False
  65.       Top             =   120
  66.       Width           =   4695
  67.       _Version        =   65536
  68.       _ExtentX        =   8281
  69.       _ExtentY        =   5530
  70.       _StockProps     =   5
  71.       BackColor       =   8421504
  72.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  73.          Name            =   "Tahoma"
  74.          Size            =   8.25
  75.          Charset         =   0
  76.          Weight          =   400
  77.          Underline       =   0   'False
  78.          Italic          =   0   'False
  79.          Strikethrough   =   0   'False
  80.       EndProperty
  81.       AsFloor         =   0   'False
  82.       BeginProperty ItemFont {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  83.          Name            =   "Tahoma"
  84.          Size            =   8.25
  85.          Charset         =   0
  86.          Weight          =   400
  87.          Underline       =   0   'False
  88.          Italic          =   0   'False
  89.          Strikethrough   =   0   'False
  90.       EndProperty
  91.    End
  92. End
  93. Attribute VB_Name = "Form1"
  94. Attribute VB_GlobalNameSpace = False
  95. Attribute VB_Creatable = False
  96. Attribute VB_PredeclaredId = True
  97. Attribute VB_Exposed = False
  98. Option Explicit
  99. Dim a As New Lib2Me
  100. Dim l() As LClass
  101. Dim f(100, 100) As LFunction
  102. Dim sKinds As Variant
  103. Dim sInvokeKinds As Variant
  104. Dim sClassKinds As Variant
  105. Private Sub Form_Load()
  106.     FunctionxProp.PagesAndItems = "Inherited#{#}#General#{#IDEditEnable#KindEditEnable#InvokeKindEditEnable#ParameterCountEditEnable#ReturnTypeEditEnable#}#Parameters#{#}#"
  107.     TypeLibxProp.AsFloor = False
  108. End Sub
  109. Private Sub Open_Click()
  110.     sKinds = Array("Virtual", "PureVirtual", "NonVirtual", "Static", "Dispatch")
  111.     sInvokeKinds = Array("Method", "Get", "Put", "PutRef")
  112.     sClassKinds = Array("Enum", "Record", "Module", "Interface", "Dispatch", "Coclass", "Alias", "Union", "Max")
  113.     
  114.     Dim li As LClass
  115.     Dim fij As LFunction
  116.     Dim iPage As Integer
  117.     iPage = 0
  118.     Dim s As String
  119.     a.Load FileName
  120.     Dim i As Integer
  121.     i = 0
  122.     TypeLibxProp.Visible = False
  123.     Do
  124.         Set li = a.Class(i)
  125.         If Not (li Is Nothing) Then
  126.             s = li.Name()
  127.             iPage = TypeLibxProp.AddPage(s + " - " + sClassKinds(li.Kind()))
  128.             Dim j As Integer
  129.             Dim iProp As Integer
  130.             j = 0
  131.             Do
  132.                 Set fij = li.Function(j)
  133.                 If (Not (fij Is Nothing)) Then
  134.                     iProp = TypeLibxProp.InsertProperty(iPage, -1, fij.Name(), "Edit", 2)
  135.                     TypeLibxProp.SetDefaultValue iPage, iProp, fij.Documentation()
  136.                     Set f(i, j) = fij
  137.                     j = j + 1
  138.                     End If
  139.             Loop Until fij Is Nothing
  140.             TypeLibxProp.InsertProperty iPage, -1, "-- Variables --", "Edit", 1
  141.             Dim v As LVariable
  142.             j = 0
  143.             Set v = li.Variable(j)
  144.             While Not (v Is Nothing)
  145.                 iProp = TypeLibxProp.InsertProperty(iPage, -1, v.Name(), "Edit", 2)
  146.                 TypeLibxProp.SetDefaultValue iPage, iProp, v.Type()
  147.                 j = j + 1
  148.                 Set v = li.Variable(j)
  149.             Wend
  150.             ReDim Preserve l(i)
  151.             Set l(i) = li
  152.             i = i + 1
  153.         End If
  154.     Loop Until li Is Nothing
  155.     TypeLibxProp.Visible = True
  156. End Sub
  157. Private Sub TypeLibxProp_SelectItem(ByVal nIndexPage As Integer, ByVal nIndexItem As Integer)
  158.     Dim fij As LFunction
  159.     Set fij = f(nIndexPage, nIndexItem)
  160.     If Not (fij Is Nothing) Then
  161.         FunctionxProp.Visible = False
  162.         FunctionxProp.SetDefaultValueByName "Kind", sKinds(fij.Kind())
  163.         FunctionxProp.SetDefaultValueByName "InvokeKind", sInvokeKinds(Log(fij.InvokeKind() / Log(2)))
  164.         FunctionxProp.SetDefaultValueByName "ParameterCount", fij.ParameterCount()
  165.         FunctionxProp.SetDefaultValueByName "ID", fij.ID
  166.         FunctionxProp.SetDefaultValueByName "ReturnType", fij.ReturnType()
  167.         Dim iPage As Integer
  168.         iPage = 2
  169.         Do While FunctionxProp.DeleteProperty(iPage, 0)
  170.         Loop
  171.         Dim i As Integer
  172.         Dim p As LParameter
  173.         Dim iProp As Integer
  174.         i = 0
  175.         Do
  176.             Set p = fij.Parameter(i)
  177.             If Not (p Is Nothing) Then
  178.                 iProp = FunctionxProp.InsertProperty(iPage, -1, p.Name(), "Edit", 2)
  179.                 FunctionxProp.SetDefaultValue iPage, iProp, p.Type()
  180.                 i = i + 1
  181.             End If
  182.         Loop Until p Is Nothing
  183.         FunctionxProp.Visible = True
  184.     End If
  185. End Sub
  186. Private Sub TypeLibxProp_SelectPage(ByVal nIndex As Integer)
  187.     Dim iPage As Integer
  188.     iPage = 0
  189.     If TypeLibxProp.Visible() Then
  190.         Do While FunctionxProp.DeleteProperty(iPage, 0)
  191.         Loop
  192.         Dim i As Integer
  193.         For i = 0 To l(nIndex).CountInheritedClass - 1
  194.             FunctionxProp.InsertProperty iPage, -1, l(nIndex).InheritedClass(i).Name, "Edit", 0
  195.         Next
  196.     End If
  197. End Sub