Friday, June 8, 2012

Bagaimana Memperoleh Nama Object Dalam Startup Object - VB6

Menjelaskan mengenai cara memperoleh (return/get) object atau nama object dalam sebuah project Visual Basic 6 menggunakan Add-Ins - Jika kita mengetikan kode seperti disamping: VBInstance.ActiveVBProject.VBComponents.StartUpObject. (dengan menambahkan titik di depan), VB6 tidak akan menampilkan list method atau property otomatisnya, padahal StartUpObject ini memiliki beberapa property, diantaranya adalah property .Name untuk memperoleh nama object, seperti contoh di bawah ini:
Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
MsgBox GetStartUpName
End Sub

Private Function
GetStartUpName() As String
GetStartUpName = VBInstance.ActiveVBProject.VBComponents.StartUpObject.Name
End Function
Sepertinya pembahasan Startup Object ini selesai, dari sini tentu kita dapat membuat tools-tools sederhana dan bermanfaat, misalnya Generator XP Style, yakni dengan memasukan resource file dan sedikit kode. Akan tetapi sebelumnya, ia (Generator XP Style) harus sedikit diberi 'kecerdasan buatan' agar dapat memutuskan, manakah yang menjadi Startup Object, apakah harus membuat Sub Main atau menginsert kode langsung pada Form? dan lain sebagainya.
READ MORE - Bagaimana Memperoleh Nama Object Dalam Startup Object - VB6

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.
READ MORE - Jika Bukan Sub Main Untuk Startup Object? - VB6 Add-Ins

Apakah Project Telah Dirubah, Cara Mengetahuinya? VB6-AddIns

Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
If IsDirty Then
MsgBox "Project telah disimpan"
Else
MsgBox "Project belum disimpan"
End If
End Sub

'untuk mengetahui apakah project telah dirubah/diedit
Public Function IsDirty() As Boolean
IsDirty = (VBInstance.ActiveVBProject.IsDirty = True)
End Function
READ MORE - Apakah Project Telah Dirubah, Cara Mengetahuinya? VB6-AddIns

Memeriksa Apakah Project Telah Disimpan - VB6 Add-Ins

Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
If IsProjectSaved Then
MsgBox "Project telah disimpan"
Else
MsgBox "Project belum disimpan"
End If
End Sub

'untuk mengetahui apakah project telah disimpan
Public Function IsProjectSaved() As Boolean
IsProjectSaved = Not (VBInstance.ActiveVBProject.FileName = "")
End Function
READ MORE - Memeriksa Apakah Project Telah Disimpan - VB6 Add-Ins