这组对象允许操作工程──即,添加工程到已有的工程组中或从其中删除工程。也可以把 VBComponents 添加到工程中或将其从工程中删除掉。VBComponent 是能添加到 Visual Basic 工程的任何对象,例如窗体、控件、代码模块等等。
下面的代码片断演示了如何引用 VBProject 对象和 VBProjects 集合,以及其它扩展性对象:
'
创建新工程。Private Sub cmdCreateNew_Click()
Dim p As VBProject
Set p = vbi.VBProjects.Add _
(cmbProjKind.ItemData(cmbProjKind.ListIndex))
If txtProjName.Text <> "" Then
p.Name = txtProjName.Text
End If
End Sub
'
激活部件。Private Sub cmdActivate_Click()
Dim sc As String
Dim sp As String
Dim c As VBComponent
sp = cmbProj.Text
sc = cmbComp.Text
If sp <> "" And sc <> "" Then
Set c = _
vbi.VBProjects.Item(sp).VBComponents.Item(sc)
c.Activate
End If
End Sub
'
按cmbCompKind combo
里指示的类型创建的新部件。Private Sub cmdCreateNewVBComponent_Click()
Dim p As VBProject
Dim c As VBComponent
Dim sp As String
sp = cmbProj.Text
If sp <> "" Then
Set p = vbi.VBProjects.Item(sp)
Set c = p.VBComponents.Add _
(cmbCompKind.ItemData(cmbCompKind.ListIndex))
End If
End Sub
'
从代码模块中获取文本并显示在文本控件中。Private Sub cmdGetText_Click()
Dim i As Long
Dim str As String
Dim p As VBProject
Dim c As VBComponent
Dim sc As String
Dim sp As String
Screen.MousePointer = vbHourglass
sp = cmbProj.Text
sc = cmbComp.Text
If sp <> "" And sc <> "" Then
Set c = _
vbi.VBProjects.Item(sp).VBComponents.Item(sc)
txtDisplay.Text = "" '
清除文本控件。For i = 1 To c.CodeModule.CountOfLines
str = str & c.CodeModule.Lines(i, 1) & CRLF
Next i
txtDisplay.Text = str
SynchCodePaneScroll
End If
Screen.MousePointer = vbDefault
End Sub
'
刷新由主对象中的事件调用的工程列表。Public Sub RefreshProjects()
Dim p As VBProject
Dim tempIndex As Long
Screen.MousePointer = vbHourglass
If cmbProj.ListCount > 0 Then
tempIndex = cmbProj.ListIndex
'
用来恢复先前的选定的临时索引。End If
cmbProj.Clear
For Each p In vbi.VBProjects
cmbProj.AddItem p.Name
Next p
'
恢复先前的选定。If cmbProj.ListCount > 0 Then
If tempIndex <= cmbProj.ListCount - 1 Then
cmbProj.ListIndex = tempIndex
Else
cmbProj.ListIndex = 0
End If
End If
Screen.MousePointer = vbDefault
End Sub