Friday, December 21, 2012

Contoh Sederhana Bekerja Dengan TabStrip - VB6

Bekerja dengan objek TabStrip dalam pengkodean VB6, maka tidak akan terlepas dari yang dinamakan Container. Diantara container yang banyak digunakan untuk keperluan ini adalah PictureBox. TabStrip berbeda dengan SSTab, TabStrip memerlukan tambahan kode untuk menampilkan objek-objek yang berada di bawah tab-nya.

Berikut merupakan contoh sederhana bagaimana bekerja dengan TabStrip. TabStrip yang digunakan dalam contoh adalah TabStrip yang berada pada komponen COMCTL32.OCX. Dengan mempergunakan COMCTL32.OCX maka tampilannya dapat mengikuti style window yang ada. Karena di dalam pengkodeannya akan banyak melakukan resize terhadap beberapa objek, cobalah untuk mempertimbangkan posting saya sebelumnya di sini.

TabStrip VB6

Gambar: Tampilan tabstrip yang berada di bawah tabstrip lagi.

Download: Source Code VB6 - Contoh sederhana menggunakan TabStrip.

READ MORE - Contoh Sederhana Bekerja Dengan TabStrip - VB6

Method .Move Jauh Lebih Cepat - VB6 Tips

Menjelaskan bahwa method .Move yang terdapat pada objek jauh lebih cepat dibandingkan setting pada properties - Apabila Anda bekerja dengan tampilan yang terdapat pada VB6 dan pada tampilan tersebut banyak melakukan resize terhadap objek misalnya: Form melakukan resize terhadap Container1 (PictureBox), Container1 melakukan resize terhadap Container2 (PictureBox), Container2 melakukan resize terhadap Container3, dan seterusnya hingga akhirnya Container terakhir melakukan resize terhadap objek-objek. Barulah Anda menyadari sebuah ketidakstabilan karena menggunakan kode seperti yang dicontohkan di bawah ini:

Private Sub Picture1_Resize()
    With Text1
        .Left = 0
        .Top = 0
        .Width = Picture1.ScaleWidth
        .Height = Picture1.ScaleHeight
    End With
End Sub

Sebaiknya kode di atas Anda ganti saja dengan menggunakan methode move seperti yang dicontohkan di bawah ini:

Private Sub Picture1_Resize()
    With Text1
        .Move 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight
    End With
End Sub
Atau sebaiknya buatlah sebuah method reusable seperti di bawah ini:
Public Sub SetSameSize(Parent, Child)
With Child
.Move 0, 0, Parent.ScaleWidth, Parent.ScaleHeight
End With
End Sub
Contoh penggunaan dari method di atas:
Private Sub Picture1_Resize()
SetSameSize Picture1, Text1
End Sub

Ngomong-ngomong mengapa method move lebih cepat? tentu saja karena ia hanya memerlukan satu kali proses dan langsung memanggil fungsi API, sementara setting properties membutuhkan bebarapa kali proses disebabkan OOP dan Class-nya.

READ MORE - Method .Move Jauh Lebih Cepat - VB6 Tips

Thursday, December 20, 2012

Context Menu Untuk File Ber-ektensi VBL - VB6 OCX

Masih ingatkah Anda? Ya, tentu saja. Masih ingatkah Anda dengan posting saya terdahulu tentang file yang ber-ektensi .VBL. Jika lupa coba Anda buka link di samping untuk mengingatnya klik disini. Apakah pada saat mencoba komponen Shadow.OCX menampilkan gambar di bawah ini:
OCX License not found
Gambar: Lisensi tidak ditemukan untuk komponen shadow.ocx

Hal tersebut terjadi karena Anda tidak memiliki lisensi untuk menggunakan shadow.ocx pada saat design time dan hanya diperbolehkan melihat demonya saja. Sekarang kita bermain pura-pura, pura-puranya Anda telah membeli lisensi dari saya, kemudian saya memberikan lisensinya berupa file ber-ektensi .vbl atau tepatnya lisensi.vbl.
Download: Lisensi.VBL

Apa Yang Harus Dilakukan Dengan Lisensi.VBL

Memasukan lisensi key yang terdapat pada file lisensi.vbl ke dalam registry agar Anda dapat menggunakan file shadow.ocx tersebut pada saat design time, tetapi bagaimana caranya? Kita ambil dua cara termudah:
  1. Mengganti ektensi .vbl dengan ektensi .reg kemudian double klik
  2. Membuat context menu untuk file .vbl dengan cara mengetik file registry di bawah ini pada notepad:
REGEDIT4

[HKEY_CLASSES_ROOT\.vbl]
@="VisualBasic.VBLFile"
[HKEY_CLASSES_ROOT\VisualBasic.VBLFile]
@="Visual Basic Control License File"
[HKEY_CLASSES_ROOT\VisualBasic.VBLFile\shell\open]
@="&Insert License"

    • Kemudian simpan dengan nama lisensi.reg lakukan double klik, selanjutnya akan ada konfirmasi sukses.
    • Klik kanan file lisensi.vbl maka pada context menu akan terdapat menu Insert Lisensi seperti gambar di bawah ini:
    • OCX Insert License
      Gambar: Context Menu Baru (Insert License)
    • Selanjutnya apa lagi jika bukan klik!
Nah, setelah Anda paham maka kita hentikan kepura-puraannya.

Nama file: Shadow.OCX
GUID: A434183A-F9E0-4DFA-AB7B-7538C391A576
License Key: kkgdjdikddedddfdieikpdfkqesjgdjdkdpj

READ MORE - Context Menu Untuk File Ber-ektensi VBL - VB6 OCX

VB6 Code: Menggunakan ( := ) dalam Coding VB6

Apabila Anda sering bekerja dengan pemrograman macro yang terdapat dalam Microsoft Office , entah itu macro yang ada dalam Microsoft Office 97, Microsoft Office 2000, Microsoft Office 2003, Microsoft Office 2007, dan Microsoft Office seterusnya, tentu Anda sudah tidak asing lagi dengan := (titik dua sama dengan).

Dikarenakan VB6 identik dengan VBA office dalam artian keduanya menggunakan bahasa yang sama, kebutuhan runtime file yang sama, dan sebagainya (yang berbeda hanya objek-objek saja), maka apa yang ada dalam VBA tentu bisa dijalankan dalam VB6. Salah satunya adalah tanda (:=) walau jarang sekali melihatnya dalam pengkodean VB6.

Tanda (:=) merupakan pemberitahuan kepada compiler bahwa sebuah argumen optional telah diisi dengan nilai tertentu. Agar lebih jelasnya berikut merupakan contoh sebuah function yang memiliki 26 argument optional (argumen yang memiliki 2 opsi, boleh diisi atau tidak):

Option Explicit

'Sebuah function dengan 26 argument, nama argument dari a s/d z
Private Function Test(Optional a, Optional b, Optional c, Optional d, Optional e _
, Optional f, Optional g, Optional h, Optional i, Optional j, Optional k, Optional l _
, Optional m, Optional n, Optional o, Optional p, Optional q, Optional r, Optional s _
, Optional t, Optional u, Optional v, Optional w, Optional x, Optional y, Optional z)
    MsgBox o
    MsgBox z
    'Kode dan seterusnya
End Function
Maka untuk memanggil fungsi di atas bisa seperti ini:
Private Sub Command1_Click()
    Call Test(, , , , , , , , , , , , , , 6, , , , , , , , , , , 1)
End Sub
Atau seperti ini:
Private Sub Command2_Click()
    Call Test(o:=6, z:=1) 'Call disini berguna untuk memudahkan pembacaan kode
End Sub
Atau seperti ini (dengan membalikan, argumen z di depan dan argumen o di belakang):
Private Sub Command3_Click()
     Call Test(z:=1, o:=6)
End Sub
Atau seperti ini (tanpa call):
Private Sub Command4_Click()
     Test z:=1, o:=6 'tanpa Call juga bisa berjalan kok
End Sub
Mana yang menurut Anda praktis?
READ MORE - VB6 Code: Menggunakan ( := ) dalam Coding VB6