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.