Home > Visual Basic > Beberapa komponen Tab yang wajib dilirik

Beberapa komponen Tab yang wajib dilirik

March 28, 2010

1. vbAccelerator VB6 MDI Tab Component

Komponen ini digunakan untuk mengelompokan MDIChild form kedalam tab-tab. Contoh :

Contoh sourcecode penggunakan komponen ini diketik di MDIParent

Option Explicit

Private WithEvents m_cMDITabs   As cMDITabs

Public Sub closeChild(ByVal frmChild As Form)
    On Error GoTo errHandle

    Unload frmChild
    m_cMDITabs.ForceRefresh

    Exit Sub
errHandle:
    Call msgWarning(Err.Description)
End Sub

Private Function formForHwnd(ByVal hwnd As Long) As Form
    Dim frmChild As Form

    On Error GoTo errHandle

    For Each frmChild In Forms
        If (frmChild.hwnd = hwnd) Then
            Set formForHwnd = frmChild
            Exit For
        End If
    Next

    Exit Function
errHandle:
    Call msgWarning(Err.Description)
End Function

Private Sub m_cMDITabs_CloseWindow(ByVal hwnd As Long)
    Dim frm As Form

    On Error GoTo errHandle

    Set frm = formForHwnd(hwnd)
    Unload frm
    m_cMDITabs.ForceRefresh

    Exit Sub
errHandle:
    Call msgWarning(Err.Description)
End Sub

Private Sub MDIForm_Load()
    Set m_cMDITabs = New cMDITabs
    m_cMDITabs.Attach Me.hwnd
End Sub

Selanjutnya untuk menutup MDIChild form, kita tinggal panggil public method closeChild milinya MDIParent :

Private Sub cmdSelesai_Click()
    Call frmMain.closeChild(Me)
End Sub

2. vbAccelerator VB6 VS Tab Control

Komponen ini digunakan untuk menggantikan komponen tab standar VB 6 (Microsoft Tabbed Dialog Control 6 dan TabStrip). Contoh :

Cara penggunaan komponen ini :

1. Tambahkan 2 atau lebih objek PictureBox kemudian ubah properties Namenya. Ex picTabPribadi dan picTabRiwayatJabatan

2. Tambahkan komponen vbAccelerator VB6 VS Tab Control kemudian kita ubah nambahnya menjadi tabMain

Untuk bagian kode program, tambahkan prosedur berikut :

Private Sub initTab()
    Dim C As cTab

    With tabMain
        .ShowCloseButton = False
        .AllowScroll = False
        .TabAlign = TabAlignTop

        Set C = .Tabs.Add("picTabPribadi", , "Data Pribadi")
        C.Panel = picTabPribadi

        Set C = .Tabs.Add("picTabRiwayatJabatan", , "Riwayat Jabatan")
        C.Panel = picTabRiwayatJabatan
    End With
End Sub

Selanjutnya kita tinggal melakukan inisialisasi di event Form_Load :

Private Sub Form_Load()
    Call initTab
End Sub

Untuk komponen vbAccelerator VB6 MDI Tab Component membutuhkan library vbAccelerator VB6 Subclassing and Timer Assistant.

Selamat mencoba🙂

  1. April 21, 2010 at 4:11 am

    bang, saya coba kok ndak bisa ya ? boleh minta sourcenya ? kirim ke email ya😀
    makasih😀

  2. April 21, 2010 at 4:38 am

    Klo gagal dicoba lagi. Source codenya sudah sejelas itu koq, harusnya bisa.

  3. April 24, 2010 at 7:05 am

    Private WithEvents m_cMDITabs As cMDITabs

    ada error di bagian ini nya bang ?

  4. April 24, 2010 at 7:56 am

    andri laras :

    Private WithEvents m_cMDITabs As cMDITabs

    ada error di bagian ini nya bang ?

    Klo pesan errornya “User-defined type not defined” berarti download dulu komponen vbAccelerator VB6 MDI Tab Component setelah itu di register dengan perintah regsvr32 kemudian tambahkan referensi vbAccelerator VB6 MDI Tab Component

    Selamat mencoba🙂

  5. imam
    June 19, 2010 at 5:55 pm

    sya sudh download, tp sya bingung cara meregister dengan perintah regsvr32 yg mas maksud…
    mohon di jelasin dong mas caranya, klo bisa kirim ke email sya ja.

    maksih bnyk atas infonya

  6. June 19, 2010 at 11:51 pm

    imam :

    sya sudh download, tp sya bingung cara meregister dengan perintah regsvr32 yg mas maksud…
    mohon di jelasin dong mas caranya, klo bisa kirim ke email sya ja.

    maksih bnyk atas infonya

    Ekstrak ke 3 file yang sudah didownload, berikut file hasil ekstrak :
    1. ssubtmr6.dll
    2. vbalMDITabs6.dll
    3. vbalDTab6.ocx

    Copykan ke 3 file tersebut ke folder Windows\System32, trus klik tombol Start -> Run, kemudian ketik :

    regsvr32 ssubtmr6.dll
    

    Ulangi lagi langkah diatas untuk file vbalMDITabs6.dll dan vbalDTab6.ocx

    Selamat mencoba🙂

  7. imam
    June 20, 2010 at 1:32 pm

    Oke mkasih bnyak y mas…

  8. July 30, 2010 at 3:03 am

    seep bos, udah sukses penggunaannya . . . . . .
    makasih infonya🙂

    • July 30, 2010 at 3:19 am

      Oke sama2x om🙂

  9. agung stiawan
    August 6, 2010 at 2:15 pm

    Dear Om Admin…

    Om, mau tanya dikit nih. Saya kan sudah buat menu dan tiap menu saya kasih perintah :

    Private Sub mnCustomer_Click(Index As Integer)
    FListCustomer.Show
    m_cMDITabs.ForceRefresh
    End Sub

    Private Sub mnSupplier_Click(Index As Integer)
    FListSupplier.Show
    m_cMDITabs.ForceRefresh
    End Sub
    Untuk menu yg lain sama seperti itu. Sekarang saya menampilkan data Customer dan Supplier dan di Menu Utama Posisi Tab bar yang aktif misal Daftar Supplier(Caption Bold). Nah ketika saya klik lagi menu Supplier, harusnya kan Tab Bar yang aktif sekarang adalah Tab Bar Supplier. Yang ingin saya tanyakan, gimana supaya ketika saya klik menu Supplier, maka Tab Bar supplier yang aktif? Soalnya script di atas tidak berfungsi.. Mohon pencerahannya OM..

  10. agung stiawan
    August 6, 2010 at 2:20 pm

    Maaf Om, mau ralat. Maksud saya, misal yang aktif Tab Bar Daftar Supplier, terus saya klik lagi menu Customer maka Tab Bar yang aktif adalah Tab Bar Daftar Customer.

    • August 6, 2010 at 11:19 pm

      Setau sy kode seperti ini :

      Private Sub mnCustomer_Click(Index As Integer)
          FListCustomer.Show
          m_cMDITabs.ForceRefresh
      End Sub
      

      seharusnya sudah sesuai dg keinginan om, atw coba alternatif lain :

      Private Sub mnCustomer_Click(Index As Integer)
          FListCustomer.Show
          FListCustomer.SetFocus 'tambah pemanggilan method SetFocus
          m_cMDITabs.ForceRefresh
      End Sub
      

      Selamat mencoba🙂

  11. agung stiawan
    August 7, 2010 at 12:30 pm

    Oke om, thank’s.. Beres dah..😀

    • August 9, 2010 at 12:57 am

      Oke sama2x

  12. hery
    September 4, 2010 at 7:31 am

    MDIParent itu apa Mas Admin??
    MDIForm_load Maksudnya????

    • September 4, 2010 at 8:37 am

      MDIParent itu ya Form Induk/Utama, klo MDIForm_load itu kan salah satu event yg ada di MDIParent.😀

  13. syarif
    December 6, 2010 at 4:55 am

    mas, ketemu lagi..
    saya gak tau harus tanya di posting yang mana. mdh2an gpp di sini juga.. hehe..
    mau tau tentang true dbgrid dan penggunaannya..

    saya mau dbgrid yang saya buat itu warnanya selang seling setiap row-nya..
    thx b4..

    • December 6, 2010 at 5:52 am

      Sory om sy belom pernah make true dbgrid, tapi klo pake Microsoft FlexGrid Control 6.0 bisa juga kok warna rownya bisa dibuat seperti itu.

      Cukup dengan memanfaatkan properties CellBackColor, Row, Col plus perulangan.

      Selamat mencoba🙂

  14. afdoal
    May 11, 2011 at 3:52 am

    bang, mau tanya nih.
    apa sih fungsi dari vbAccelerator VB6 Subclassing??

    n kira-kira, error seperti ini krn apa ya?? nih gambar errornya

    https://picasaweb.google.com/lh/photo/ES6-D-OwFw4VS_3lVGo9nCett1AN-vcMIALAcxew7jM?feat=directlink

    dan error ini muncul setelah tak pake fungsi API ini:
    Public Declare Function CreatePatternBrush Lib “gdi32.dll” (ByVal hBitmap As Long) As Long

    kira-kira ada solusinya gak bang???

    • May 11, 2011 at 7:40 am

      Untuk vbAccelerator VB6 Subclassing mungkin langsung baca artikelnya aja om.

      Sory om utk kasus no 2 belum bs bantu😀

  15. Alan Shufy
    May 15, 2011 at 5:52 pm

    Aku coba coding di atas dan ternyata berhasil, tapi aku menemukan bug yang aneh!!!
    ketika aku tutup Form MDIChildnya secara cepat, tiba2 aplikasi VB-nya Malah Error
    dan Muncul Pesan ini
    Visual Basic has encountered a problem and needs to close. We are sorry for the inconvenience. ……….
    setelah itu muncul Peringatan vb6.exe – Aplication Error, the memory could not be written.
    kira2 seperti itu, tapi itu kadang2 terjadinya wlaupun cukup sering, Masalahnya kenapa ya kang Admin?

    • May 16, 2011 at 7:00 am

      Coba di compile dulu om, baru testing lagi
      Yg jelas sy udah lama make VB6 MDI Tab Component dan VB6 VS Tab Control enggak ada masalah.

  16. Alan Shufy
    May 16, 2011 at 10:47 am

    Itupun sudah saya coba, tapi hasilnya sama. Mungkin Kesalahannya ada di PC-nya, karena aku ngak pernah pake anti virus, paling cuman pake Smadav doank…, Ok dech Makasih Banyak, Nice Admin…🙂

    • May 17, 2011 at 6:23 am

      Oke om

      • Alan Shufy
        June 13, 2011 at 1:19 pm

        maaf kang mau nanya lagi, saya udh instal aplikasi SLSnya punya akang.
        disana juga terdapat komponen yang sma tapi ketika saya eksekusi menutup mdi child tidak terjadi apa2 berarti ada ksalahan pada sourcenya bukan pda PC saya, tapi saya menggunakan source yang saya copy paste dari blog ini, kira kira kesalahannya dimana yah???
        apa mungkin berhubungan dengan source lainnya, masalahnya hanya muncul ketika saya menutup form childnya aja.
        parahnya lagi ketika saya mencoba run di vb 6 pun, malah aplikasi vb nya, not responding kira2 ada pencerahan ngak kang🙂

        • June 14, 2011 at 2:06 am

          No comment, lagi blank😀

  17. Alan Shufy
    June 14, 2011 at 5:27 am

    he he akhirnya kang admin blank juga, ya udah ngak apa2 udah cukup bnyak yang akang ajarin sama saya….. ngomong2 terima kasih banyak…. jangan kapok kalau saya naya lagi ya kang !!!

  18. July 9, 2011 at 7:10 pm

    gan, pas ane tutup tanda close mdichild nya ada error dibagian ini > Call msgWarning(Err.Description)

    function not defined

    • July 10, 2011 at 7:46 am

      Kayaxnya ngopy kode postingan diatas belum lengkap

  19. July 9, 2011 at 7:12 pm

    terus sama yang muncul mdi child nya cma form1 aja ya, koq form2 g muncul di mdiform nya

    • July 10, 2011 at 7:47 am

      Mungkin penyebabnya sama om, ada kode yg belum dicopy secara lengkap

    • July 11, 2011 at 11:52 pm

      Baik Form1 atw Form2 properties MDIChildnya di set true

  20. July 11, 2011 at 7:23 am

    terus gmna gan? bingung nih, upload -in contoh yg udah fix bsa nga? , kek nya juga kodingan diatas g lengkap ya?😦

  21. July 11, 2011 at 7:55 am

    Udah lengkap om, coba dicek lagi artikel diatas kan membutuhkan file2x library tambahkan jadi :
    1. Download dulu semua librarynya trus didaftarkan ke windows system
    2. Tambah semua librarynya ke project yg sedang dibuat

  22. July 11, 2011 at 9:54 am

    Admin :
    Udah lengkap om, coba dicek lagi artikel diatas kan membutuhkan file2x library tambahkan jadi :
    1. Download dulu semua librarynya trus didaftarkan ke windows system
    2. Tambah semua librarynya ke project yg sedang dibuat

    library nya udah g ada masalah gan,.. udah di register semua koq

    • July 11, 2011 at 11:49 pm

      Perintah :

      Call msgWarning(Err.Description)
      

      Dinonaktifkan/dihapus saja, itu perintah enggak penting dan enggak ada hubungannya dengan artikel diatas

  23. July 12, 2011 at 10:02 am

    Admin :
    Perintah :
    view sourceprint?1Call msgWarning(Err.Description)
    Dinonaktifkan/dihapus saja, itu perintah enggak penting dan enggak ada hubungannya dengan artikel diatas

    oh, oke, terus munculin form-form yg lain biar muncul di MDIForm gmn? koq contoh yg diatas aku coba 2 Form biasa (MDIChild) sama form MDIForm, yg muncul MDIChild nya cuma satu di MDIFormya?

    • July 12, 2011 at 11:58 am

      Baru aja sy coba lagi om dg 3 form biasa enggak ada masalah kok, mungkin properties MDIChildnya belum diset true

      • July 12, 2011 at 12:46 pm

        trus, apa ada perubahan koding lagi gan klo mo nambah form? ane nambah form lain, tapi g di ubah koding nya, jadi ane pake persis yg diatas

        • July 13, 2011 at 1:31 am

          Ya enggak ada om, perintah nampilin formnya tetap sama

  24. July 12, 2011 at 5:38 pm

    udah bisa gan, maaf ya oon ane, thx banget nih, oh iya mau nanya dikit lagi, ane kan bikin form nya dibuat maximal trus buat non aktifin tombol restore ato minimize di tab nya gmna gan?

  25. July 12, 2011 at 6:20 pm

    om maaf mau nanya lagi, oh ya sebelumnya postingan ku yg di atas hapus aja ya, soal nya saya gak enak sama om, yang diatas abaikan saja, klo perlu hapus jg boleh..

    mau nanya lg nih om, klo buat tab kek pnya om seperti gambar yg paling atas itu gimana om?
    jadi form MDIChild yg muncul selalu full tanpa border dan ga ada tombol minimize maximize kek gambar yg pnya om itu yg paling atas, mohon pencerahannya om…
    terima kasih banyak sebelumnya, maaf merepotkan

    • July 13, 2011 at 1:34 am

      Enggak perlu sy hapus om, biar om klo berkunjung kesini selalu merasa enggak enak😀

      Yg perlu disetting di form childnya :
      1. BorderStyle = 2 – Sizable
      2. ControlBox = False
      3. WindowState = 2 – Maximized
      4. Hal-hal lain yg dirasa perlu menyusul😀

  26. July 13, 2011 at 3:56 am

    udah om, bisa, tapi koq kek nge blank gitu ya, pas MDI nya di minimize trus maximize bru muncul tab nya, kodingan di MDI Form nya kek gini ato ada yg salah om…?

    Option Explicit
    
    Private WithEvents m_cMDITabs   As cMDITabs
    
    Public Sub closeChild(ByVal frmChild As Form)
    
        Unload frmChild
        m_cMDITabs.ForceRefresh
    
    End Sub
    
    Private Function formForHwnd(ByVal hwnd As Long) As Form
        Dim frmChild As Form
    
        For Each frmChild In Forms
            If (frmChild.hwnd = hwnd) Then
                Set formForHwnd = frmChild
                Exit For
            End If
        Next
    
    
    End Function
    
    Private Sub m_cMDITabs_CloseWindow(ByVal hwnd As Long)
        Dim frm As Form
    
        Set frm = formForHwnd(hwnd)
        Unload frm
        m_cMDITabs.ForceRefresh
    
    End Sub
    
    Private Sub MDIForm_Load()
        Set m_cMDITabs = New cMDITabs
        'm_cMDITabs.Attach Me.hwnd
    End Sub
    
    
    Private Sub t1_Click()
        Form1.Show
    
    End Sub
    
    Private Sub t2_Click()
        Form2.Show
    
    End Sub
    
    • July 13, 2011 at 4:26 am
      Private Sub MDIForm_Load()
          Set m_cMDITabs = New cMDITabs
          'm_cMDITabs.Attach Me.hwnd
      End Sub
      

      Perintah m_cMDITabs.Attach Me.hwnd diaktifkan om

  27. July 13, 2011 at 3:07 pm

    oke om,, makasih banyak ya… udah bisa,, mantap…

    • July 13, 2011 at 11:21 pm

      Sama2x om

  28. July 13, 2011 at 4:09 pm

    om mau nanya lg nih, sekarang yg tab bagian kedua,, saya kan kasih listview di tab picTabPribadi, nah rencana di listview tsb saya kasih event DblClick terus saya isi PicTabRiwayat.setfocus koq g bsa ya,, mhon pencerahannya, terima kasih😀

    • July 13, 2011 at 11:23 pm

      Masih kurang jelas om, mungkin sedikit kode atw screenshot akan sangat membantu😀

  29. July 14, 2011 at 3:59 am

    ini om, kan di form ada 2 picture buat di jadikan tab kan ya, kek cth diatas (cth sya ksh nama : Pic0 dan Pic1), klo secara normal kan saya klo buat tab di form pake SSTab , naah biasanya jg saya jg kasih 2 tab di SSTab, jadi ada SSTab0 dan SSTab1 , biasanya pada bagian SSTab1 saya taruh ListView , nah ini saya terapkan di cth pnya om , jd di Pic1 saya beri ListView , nah nanti ketika ListView saya klik 2 kali, nanti nilai yg ada di dalam Listview tsb mengisi text box yg ada di Pic0, jadi saya kasih perintah pd saat klik 2 kali tsb dari posisi Pic1 yg aktiv kemudian berubah setfocus ke Pic0 , tp koq tidak bisa ya om sperti yg sy lakukan di SSTab …

    cth pnya saya pada SSTab

    Private Sub ListView1_DblClick()
        On Error Resume Next
        
        If rs.State = 1 Then rs.Close
            rs.Open "Select * From data_kta Where no_kta = '" & ListView1.SelectedItem & "'", cn, adOpenStatic, adLockOptimistic, adCmdText
            txtNomor.Caption = rs.Fields("no_kta")
            txtID.Caption = rs.Fields("id_anggota")
            dtTanggal.Value = rs.Fields("tanggal")
            txtNama.Caption = rs.Fields("nama")
            txtAlamat.Caption = rs.Fields("alamat")
            txtNoKtp.Caption = rs.Fields("no_ktp")
            txtBerlaku.Caption = rs.Fields("berlaku")
            Call FillFields
            Call tampil_qr
            rs.Close
            
        SSTab1.Tab = 0
        cmdUbah.Enabled = True
        cmdUbah.SetFocus
    
    End Sub
     

    makasih sebelumnya😀

    • July 14, 2011 at 4:13 am

      Oooo kayaxnya seperti ini om :

      tabMain.Tabs.Item("Pic0").selected = True
      
      • July 14, 2011 at 12:27 pm

        hahai, bisa om,, terima kasih banyakkk😀

        • July 15, 2011 at 4:21 am

          Sama2x om🙂

  30. July 27, 2011 at 7:07 pm

    oh iya mau nanya lagi nih oom🙂 ,

    kan ane udah bikin satu form spesial tuh dalam mdi child tab nya,
    terus, bagaimana cara form yg satu ini supaya tanda close dihilangkan jadi g bsa di close di mdi form nya, khusus untuk form yg satu ini aja,

    ato jika tidak bsa tanda close nya dihilangkan, jika form yg satu ini di close, dia selalu active lagi, mohon pencerahannya oom..

    terima kasih banyak

    • July 28, 2011 at 1:57 pm

      Edit event m_cMDITabs_CloseWindow yg ada di Form Utama (MDI Parent)

      Private Sub m_cMDITabs_CloseWindow(ByVal hWnd As Long)
          Dim frm As Form    
          
          Set frm = formForHwnd(hWnd)    
          If Not (frm.Name = "frmYgEnggakBolehDiClose") Then
              Unload frm
              m_cMDITabs.ForceRefresh
          End If        
      End Sub
      
  31. Hengs
    January 12, 2012 at 2:30 pm

    Admin :

    andri laras :
    Private WithEvents m_cMDITabs As cMDITabs
    ada error di bagian ini nya bang ?

    Klo pesan errornya “User-defined type not defined” berarti download dulu komponen vbAccelerator VB6 MDI Tab Component setelah itu di register dengan perintah regsvr32 kemudian tambahkan referensi vbAccelerator VB6 MDI Tab Component
    Selamat mencoba

    Mo tanya om, punya problem persis kyk diatas, udah aq coba dan udah teregister semua komponennya tapi error diatas ttp muncul, lalu saat aq coba load komponen “vbalMDITabs6.dll” tuh muncul pesan

    ‘C:\Windows\System32\vbalMDITabs6.dll’ could not be loaded.
    Tuh kenapa ya Om, btw aq pake win 7
    Thanks b4

  32. Hengs
    January 12, 2012 at 2:48 pm

    Hahaha gak jadi Om, aq coba cari2 lagi ternyata tuh dll bukan dr komponen addnya, tp reference ya Om….hadeeh jadi malu ndiri
    Thanks infonya

  33. arifin
    January 28, 2012 at 1:07 am

    Om.., mo tnya nih, low cranya buat menu button dropdown yang kayak punya avast tuch gmn ya…
    jadi klo pas button1 di click truz muncul submenu buttonnya n button2,button3 dst otomatis bergerak ke bawah.
    Mohon bantuannya n source kodenya.
    reply ke email ku ya Om..
    thx

    • January 28, 2012 at 9:54 am

      Duh yg mana ya? Soalnya sy belum pernah make avast😀

  34. March 3, 2012 at 12:23 pm

    arifin :
    Om.., mo tnya nih, low cranya buat menu button dropdown yang kayak punya avast tuch gmn ya…
    jadi klo pas button1 di click truz muncul submenu buttonnya n button2,button3 dst otomatis bergerak ke bawah.
    Mohon bantuannya n source kodenya.
    reply ke email ku ya Om..
    thx

    klo gak salah, avast pake komponen/library dari Codejock om…..

    • March 4, 2012 at 8:57 am

      Klo salah g mana om ?😀

  35. birawa84
    May 28, 2012 at 5:51 pm

    saya coba download filenya kok gak bisa ya? tolong dong

    • May 29, 2012 at 8:50 am

      Emg file yg mana om ?

  36. August 26, 2012 at 9:02 pm

    http://www.vbaccelerator.com/home/VB/code/Controls/Tab_Controls/MDI_Tabs/VB6_MDITabs_Binary.zip

    link file ini sudah tidak bisa di dowload om…
    bagi source file komponen yang ini dunk….

  37. August 26, 2012 at 9:18 pm

    ops pak download file ini dimana …
    1. ssubtmr6.dll
    2. vbalMDITabs6.dll
    3. vbalDTab6.ocx

  38. August 26, 2012 at 9:20 pm

    1. ssubtmr6.dll
    2. vbalMDITabs6.dll
    3. vbalDTab6.ocx

    file ini bisa didownload disini yah…

    http://www.vbaccelerator.com/home/VB/Code/Controls/Tab_Controls/Visual_Studio_Style_Tab_Control/VB6_VS_Tab_Control_Full_Source.zip

  39. June 11, 2013 at 2:55 pm

    link vbaccelerator koq g ada yg bisa y

    tolong dong saya pengen coba tu tp g bisa bisa

    please ..
    help me

  40. August 14, 2013 at 12:02 am

    klo di vb 2008 gimana nih listing programnya….

  41. Andris
    November 20, 2013 at 11:22 am

    Misi kang mau tanya, bisa ga yah MDI Tab nya ini jalan di form biasa. bukan di form MDI?

  1. No trackbacks yet.
Comments are closed.
%d bloggers like this: