Membuat menu samping dengan komponen vbAccelerator VB6 Explorer Bar
Masih pembahasan tentang pembuatan menu alternatif selain menggunakan tool standar vb (menu editor), kali ini kita akan menggunakan komponen vbAccelerator VB6 Explorer Bar.
vbAccelerator VB6 Explorer Bar adalah salah satu komponen keren dan gratis yang tersedia di situs www.vbaccelerator.com.
Dan masih menggunakan resource yang sama dengan postingan saya sebelumnya, kita akan membuat menu dengan tampilan seperti berikut :
Untuk memudahkan kita memahami penggunaan komponen vbAccelerator Explorer Bar, minimal ada 2 istilah yang harus kita ketahui :
- Bar Menu, gampangnya kita sebut saja menu induk
- Item Menu tentu saja ini menu anaknya
Adapun contoh prosedur/fungsi untuk menambahkan Bar Menu dan Item Menu:
Private Function setBarMenu(ByVal explorerBar As Object, ByVal menuName As String, _
ByVal menuCaption As String, ByVal iconIndex As Long) As Object
Dim cBar As Object
Set cBar = explorerBar.Bars.Add(, menuName, menuCaption)
cBar.IsSpecial = True
cBar.iconIndex = iconIndex
cBar.TitleForeColor = WARNA_BIRU_TUA
cBar.TitleForeColorOver = WARNA_BIRU_TUA
cBar.TitleBackColorLight = WARNA_BIRU
cBar.TitleBackColorDark = RGB(234, 241, 253)
cBar.BackColor = WARNA_ABU_ABU
Set setBarMenu = cBar
End Function
Private Sub setItemMenu(ByVal cBar As Object, ByVal menuName As String, ByVal menuCaption As String, ByVal iconIndex As Long)
Dim cItem As Object
Set cItem = cBar.Items.Add(, menuName, menuCaption)
With cItem
.iconIndex = iconIndex
.TextColor = WARNA_BIRU_TUA
.TextColorOver = WARNA_PUTIH
End With
End Sub
Sebelum kita akan mengetikan kode lengkap untuk membuat menu dengan komponen vbAccelerator Explorer Bar, tambahkan terlebih dahulu komponen/referensi berikut ke dalam project Anda :
- vbAccelerator Explorer Bar (Menu Project -> Component)
- vbAccelerator Image List (Menu Project -> Component), komponen ini untuk menambahkan icon di menu bar/item
- vbAccelerator VB6 Subclassing and Timer Assistant (Menu Project -> References) pembahasan tentang komponen ini bisa di lihat di sini
kemudian drag komponen vbAccelerator Explorer Bar dan vbAccelerator Image List ke form
Contoh penggunaan prosedur/fungsi setBarMenu dan setItemMenu :
Private Sub addMenu(ByVal explorerBar As Object, ByVal barIcons As Object, ByVal itmIcons As Object)
Dim rsMenuInduk As ADODB.Recordset
Dim rsMenuAnak As ADODB.Recordset
Dim cBar As Object
Dim i As Long
Dim x As Long
Dim rowCount(1) As Long
With explorerBar
.UseExplorerStyle = False
.Redraw = False
.BackColorStart = WARNA_BIRU
.BackColorEnd = WARNA_BIRU
.ImageList = itmIcons.hIml
.BarTitleImageList = barIcons.hIml
'menampilkan menu induk
strSql = "SELECT id, menu_name, menu_caption " & _
"FROM menu_induk " & _
"ORDER BY id"
Set rsMenuInduk = openRecordset(strSql)
If Not rsMenuInduk.EOF Then
rowCount(0) = getRecordCount(rsMenuInduk)
For i = 1 To rowCount(0)
Set cBar = setBarMenu(explorerBar, rsMenuInduk("menu_name").Value, rsMenuInduk("menu_caption").Value, 0)
'menampilkan menu anak
strSql = "SELECT menu_name, menu_caption " & _
"FROM menu_anak " & _
"WHERE menu_induk_id = " & rsMenuInduk("id").Value & " " & _
"ORDER BY id"
Set rsMenuAnak = openRecordset(strSql)
If Not rsMenuAnak.EOF Then
rowCount(1) = getRecordCount(rsMenuAnak)
For x = 1 To rowCount(1)
Call setItemMenu(cBar, rsMenuAnak("menu_name").Value, rsMenuAnak("menu_caption").Value, 0)
rsMenuAnak.MoveNext
Next x
End If
Call closeRecordset(rsMenuAnak)
rsMenuInduk.MoveNext
Next i
End If
Call closeRecordset(rsMenuInduk)
Set cBar = setBarMenu(explorerBar, "mnuKeluar", "Keluar", 1)
Call setItemMenu(cBar, "mnuKeluarDrProgram", "Keluar dari Program", 0)
.Redraw = True
End With
End Sub
Dan terakhir source code untuk menghandle menu yang di klik :
Private Sub vbalExplorerBarCtl1_ItemClick(itm As vbalExplorerBarLib6.cExplorerBarItem)
Select Case itm.Key
Case "mnuBarang": 'TODO : tampilkan frmBarang disini
Case "mnuCustomer"
Case "mnuSupplier"
Case "mnuPembelian"
Case "mnuReturPembelian"
Case "mnuPenjualan"
Case "mnuBiayaOperasional"
Case "mnuGajiKaryawan"
Case "mnuLapPembelian"
Case "mnuLapJthTempo"
Case "mnuLapPenjualan"
End Select
End Sub
Contoh source code langkap bisa didownload disini.
Selamat mencoba
Comments