Friday, June 8, 2012

Jika Bukan Sub Main Untuk Startup Object? - VB6 Add-Ins

Mengenai cara mensetting Startup object yang bukan Sub Main (maksudnya Form) dalam project yang dibuat dengan Visual Basic 6 Add-Ins - Setelah membahas mengenai Startup Object dengan Sub Main, sekarang permasalahannya bagaimana jika bukan Sub Main tetapi Form tertentu yang akan dijadikan Startup Object, misalnya 'frmMain', 'frmSplashScreen', dan sebagainya? Perhatikan dalam tulisan Object Browser (dengan menekan F2) tertulis, seperti di bawah: Property StartUpObject As Variant Member of VBIDE.VBComponents Returns a Variant containing the startup component for the project. Dengan demikian kita tidak bisa mengassign value seperti kode di bawah: VBInstance.ActiveVBProject.VBComponents.StartUpObject = "frmMain" dengan asumsi ingin menjadikan frmMain sebagai Startup Object. Kode tersebut akan men-generate error. Maka solusinya seperti di bawah:
Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
SetStartUpObject "frmMain"
End Sub

Private Function
SetStartUpObject(c As String) As Boolean
Dim v As
VBComponent
Set v = VBInstance.ActiveVBProject.VBComponents.Item(c)
VBInstance.ActiveVBProject.VBComponents.StartUpObject = v
End Function
Kode di atas hanya kode sederhana saja, tentu saja dalam kenyataannya ia telah dilengkapi dengan handle error yang memadai serta check beberapa kondisi, misalnya Check apakah frmMain ada? dan sebagainya.