Membuat menu samping dengan komponen vbAccelerator VB6 Explorer Bar

Pada postingan ini saya membahas 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.
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 :
  1. Bar Menu, gampangnya kita sebut saja menu induk
  2. 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 :
  1. vbAccelerator Explorer Bar (Menu Project -> Component)
  2. vbAccelerator Image List (Menu Project -> Component), komponen ini untuk menambahkan icon di menu bar/item
  3. 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 :)

Sumber : http://coding4ever.wordpress.com


Tag :  Membuat menu samping dengan komponen vbAccelerator VB6 Explorer Bar, membuat menu samping di vb 6, membuat menu samping, vbAccelerator VB6 Explorer Bar, mempercantik tampilan vb, mempercantik tampilan form di vb, trik membuat menu samping, membuat menu di vb 6, skin for vb

1 comment:

  1. vbAccelerator memiliki limit menu (menu Induk) dan sub menu (menu anak) sehingga tidak bisa tambahkan sebanyaknya atau ada cara lainnya

    ReplyDelete