Tuesday, June 12, 2012

Menambahkan Object Yang Disertai Gambar - VB6 Add-Ins

Mengenai cara menambahkan object yang disertai atau membutuhkan gambar - Dalam mengenerate kode, terkadang ada object-object yang harus, membutuhkan, lebih baik disertai dengan gambar. Dalam contoh kode sekarang, object diwakili dengan satu PictureBox sedangkan untuk object-object yang lainnya (Smart Menu, object-object dari Codejock, menu vbAccelator, dll), Anda qiyaskan saja setelah disesuaikan kodenya.

Sebelum mengembangkan kode selanjutnya, ada beberapa yang harus kita pahami mengenai properties Picture. Pertama: Picture memiliki data type object, untuk mengatur propertiesnya, kita tidak bisa menggunakan kode seperti .Properties ("Picture") = LoadPicture ("C:\contoh_gambar.jpg"), ini akan menyebabkan ketidaksesuaian data type, karena penulisan .Properties ("Text") misalnya, sama dengan .Properties ("Text").Value, karena default untuk untuk .Properties adalah Value, seperti halnya kita menulis Text1 = "Contoh Text" (pada saat runtime) sama halnya dengan menulis Text1.Text = "Contoh Text" karena default properties untuk object TextBox adalah properties Text, demikian pula Label default Propertiesnya adalah Caption, dan seterusnya. Nah, untuk properties Picture (karena data typenya object) maka kita harus menuliskan .Properties ("Picture").Object = LoadPicture ("C:\contoh_gambar.jpg"). Kedua: Karena properties Picture adalah object maka kita tidak bisa menjalankan kode design time v.s desin time, mau tidak mau kita harus mengcompile terlebih dahulu project add-insnya untuk dibuat menjadi sebuah dll dan diakses secara runtime, mengapa?

Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
Dim v As VBForm
Dim p As VBControl
Set v = VBInstance.SelectedVBComponent.Designer
Set p = v.VBControls.Add("VB.PictureBox")
With p
.Properties("AutoSize") = True
.Properties("BorderStyle") = 0 'None
Set .Properties("Picture").object = LoadPicture(App.Path & "\home_brown_48.gif")
End With
End Sub

Download: Source Code

Walaupun sangat sederhana, akan tetapi kode di atas merupakan kode yang sangat langka sekali.