Friday, March 19, 2010

VB6 Code - Cara Membuat Form Pada Saat Design Time

Artikel di bawah ini menjelaskan bagaimana cara membuat form pada saat design time melalui pengkodean Visual Basic 6.0. Langkah-langkah pembuatan: Buat project Add-Ins yang berasal dari template Secara default maka akan terdapat frmAddIn, di dalamnya terdapat kode:
Public VBInstance As VBIDE.VBE
Public Connect As Connect

Option Explicit

Private Sub CancelButton_Click()
Connect.Hide
End Sub

Private Sub OKButton_Click()
MsgBox "AddIn operation on: " & VBInstance.FullName
End Sub

Public VBInstance As VBIDE.VBE
Public Connect As Connect

Gantilah seluruh kodenya dengan kode di bawah ini:

Option Explicit

Private Sub CancelButton_Click()
Connect.Hide
End Sub

Private Sub OKButton_Click()
Dim frm As VBIDE.VBComponent
Set frm = VBInstance.ActiveVBProject.VBComponents.Add(vbext_ct_VBForm)
With frm
.Properties("Name") = "frmMain"
.Properties("Width") = 7155
.Properties("Caption") = "Main Form"
.Properties("Height") = 5000
End With
End Sub

Langkah selanjutnya adalah meng-compile kodenya sehingga terbentuk file dengan nama "MyAddIn.dll".

Langkah-langkah menjalankan:

  1. Buka project baru
  2. Klik menu Add-Ins
  3. Klik Sub Menu My AddIn
READ MORE - VB6 Code - Cara Membuat Form Pada Saat Design Time

VB6 Code - Tunggu Hingga Aplikasi Selesai Dijalankan

Artikel di bawah ini kami beri judul Tunggu hingga Aplikasi selesai dijalankan, maksudnya menjalankan sebuah aplikasi kemudian kode yang berada sesudahnya menunggu (tidak dieksekusi [dijalankan]) sebelum aplikasi tersebut ditutup terlebih dahulu. Bagaimana implementasinya dalam pengkodean Visual Basic 6.0, copy dan pastekan kode di bawah ini kemudian buatlah 1 objek CommandButton.

Fungsi tunggu hingga aplikasi selesai dijalankan
Function WaitUntilFinish(sCommand, WindowsStyle, Wait As Boolean)
Dim wsh As New IWshRuntimeLibrary.WshShell
wsh.Run "notepad.exe", 1, True
'code di bawah akan dijalankan apabila notepad telah ditutup.
Set wsh = Nothing
End Function
Cara penggunaan fungsi tunggu hingga aplikasi selesai dijalankan
Private Sub Command1_Click()
Call WaitUntilFinish("notepad.exe", 1, True)
MsgBox "Kode ini dijalankan apabila notepad di tutup"
End Sub
READ MORE - VB6 Code - Tunggu Hingga Aplikasi Selesai Dijalankan

Thursday, March 18, 2010

VB6 Code - Cara Membuat Object Pada Saat Design Time

Artikel ini menjelaskan cara membuat object pada saat design time, tentu saja mudah, tetapi bukan cara membuat yang seperti "itu" yang dimaksud, ini melalui pengkodean (coding). Objek yang kita buat adalah CommandButton, bagaimana dengan objek lainnya? Anda qiyaskan saja dengan cara mengganti "CommandButton" dengan nama objek yang Anda kehendaki misalnya "TextBox" dan sebagainya. Adapun langkah-langkah membuat object pada saat design time:

  • Buat project Add-Ins yang terdapat pada template
  • Hapus seluruh kode yang terdapat pada frmAddIn
  • Gantikan dengan kode di bawah ini:
Public VBInstance As VBIDE.VBE
Public Connect As Connect

Option Explicit

Private Sub CancelButton_Click()
Connect.Hide
End Sub

Private Sub OKButton_Click()
Dim frm As VBForm
Dim ctl As VBControl
Dim i As Integer

On Error GoTo ErrHandler

Set frm = VBInstance.SelectedVBComponent.Designer
For i = 1 To 255
Set ctl = frm.VBControls.Add("CommandButton")
Next
Set frm = Nothing
Set ctl = Nothing
Exit Sub

ErrHandler:

MsgBox Err.Description

End Sub

  • Compile kodenya dengan nama "MyAddIn.dll" (secara otomatis VB6.0 akan meregister file tersebut).
  • Tutup Project setelah Anda menyimpannya
  • Buka Project baru
  • Klik menu Add-Ins, maka disana akan terdapat sub menu yang bernama "My AddIn".
  • Selanjutnya klik Sub menu "My AddIn" maka akan terbentuklah objek CommandButton dengan jumlah 254, mengapa 254 tidak 255 seperti yang terdapat dalam kode?

Apa yang bisa kita petik dari kode-kode di atas, tentu saja banyak.
READ MORE - VB6 Code - Cara Membuat Object Pada Saat Design Time

VB6 Code - Cara Mengakses Registry Dengan Mudah

Di bawah merupakan contoh mengakses registry dengan mudah, yang termasuk akses disini: baca, tulis, hapus registry. Sebelum menjalankan kodenya kita harus mereferensi pada "Microsoft Script Host Object Model" atau WSHOM.OCX yang biasa terdapat pada directory %SystemRoot%\System32\Wshom.ocx.

Selain menggunakan wshom.ocx, kita juga dapat membuatnya menggunakan fungsi-fungsi Windows API.

'Fungsi dan konstanta mengakses registry dengan mudah
Option Explicit

Public Const HKEY_LOCAL_MACHINE As String = "HKLM"
Public Const HKEY_CURRENT_USER As String = "HKCU"
Public Const HKEY_CLASSES_ROOT As String = "HKCR"

Public Const REG_BINARY As String = "REG_BINARY"
Public Const REG_DWORD As String = "REG_DWORD"

Dim wsh As New IWshRuntimeLibrary.WshShell

Public Function RegDelete(sName As String)
wsh.RegDelete sName
End Function

Public Function RegRead(sName As String)
wsh.RegRead sName
End Function

Public Function RegWrite(sName As String, Value, Optional stype)
wsh.RegWrite sName, Value, stype
End Function
Contoh mengakses registry dengan mudah
Option Explicit

Private Sub Form_Load()
RegWrite HKEY_LOCAL_MACHINE & "\BYNARY", 1, REG_BINARY
RegWrite HKEY_LOCAL_MACHINE & "\DWORD", 1, REG_DWORD
RegWrite HKEY_LOCAL_MACHINE & "\STRING", 1
End Sub
READ MORE - VB6 Code - Cara Mengakses Registry Dengan Mudah

Tuesday, March 16, 2010

Visual Basic 6 - Membuat Related Documents Pada Project

Artikel kali ini membahas mengenai 'Membuat Related Documents pada Project'.

Apa yang dimaksud Related Docoments? Coba lihat screen Shot ini. Nah, sekarang Anda faham apa yang dimaksud Related Documents itu. Selanjutnya:

Langkah-langkah membuat related documents pada project:
  1. Klik menu project
  2. Klik menu AddFile
  3. Beri tanda centang pada Add As Related Document
  4. Masukan file-file yang menurut Anda berhubungan dengan project yang sedang dibuat
  5. Selesai

Semoga membantu bagi yang belum mengetahui mengenai tata cara membuat related documents pada project.
READ MORE - Visual Basic 6 - Membuat Related Documents Pada Project

Memahami KeyWord Option Explicit dalam Visual Basic 6.0

Di bawah ini merupakan contoh kode, sehingga kita dapat memahami Statement Option Explicit dalam Visual Basic 6.0. Untuk keperluan ini, copy dan pastekan kode di bawah ini (tanpa menggunakan Option Explicit).
Private Sub Form_Load()
i = 1
MsgBox i
End Sub
Apa yang terjadi, apakah terjadi error? Tidak!
Selanjutnya copy dan pastekan kode di bawah ini (dengan menggunakan Option Explicit):
Option Explicit

Private Sub Form_Load()
i = 1
MsgBox i
End Sub
Apa yang terjadi, apakah terjadi error? Ya! dengan error 'Variable not defined' mengapa? karena Visual Basic 6.0 tidak mengenal 'i', 'i' tersebut belum didefinisikan menjadi sebuah variable atau dengan kata lain belum dideklarasikan. Sekarang copy dan pastekan code di bawah ini:
Option Explicit

Private Sub Form_Load()
Dim i as Integer
i = 1
MsgBox i
End Sub
Apakah terjadi error? tidak! sekarang 'i' telah didefinisikan (dideklarasikan) menjadi sebuah variable.

Maka kesimpulannya:
Tanpa menggunakan Option Explicit, semua variable yang tidak terdefinisi secara default akan didefinisikan oleh Visual Basic 6.0 menjadi sebuah variable yang memiliki data type Variant.
Dengan menggunakan KeyWord Option Explicit, akan memaksa seluruh variable yang belum terdefinisi untuk didefinisikan terlebih dahulu, yakni Visual Basic 6.0 tersebut akan dengan senang hati menampilkan pesan error "Variable not defined".
READ MORE - Memahami KeyWord Option Explicit dalam Visual Basic 6.0

Visual Basic 6.0 - Memahami KeyWord Option Base

Di bawah ini merupakan contoh kode sehingga kita bisa memahami Statement Option Base. Untuk keperluan tersebut copy dan pastekan code di bawah ini:

Kode dengan menggunakan Option Base 1
Option Explicit
Option Base 1

Private Sub Form_Load()
Dim Arr(5) As Integer
MsgBox LBound(Arr)
End Sub
Terlihat bahwa MsgBox tersebut menampilkan angka 1

Kode dengan tanpa menggunakan Option Base 1
Option Explicit

Private Sub Form_Load()
Dim Arr(5) As Integer
MsgBox LBound(Arr)
End Sub
Terlihat bahwa MsgBox tersebut menampilkan angka 0

Maka Kesimpulannya:
  1. Dengan menggunakan Option Base 1, maka LBound atau Lower Bound (batas terendah dari sebuah array sama dengan 1)
  2. Secara default Visual Basic 6.0 men-set Option Base 0, apabila secara explicit kita tidak menuliskan Option Base 1
  3. Option Base tidak bisa diberi nilai yang lebih dari 1
READ MORE - Visual Basic 6.0 - Memahami KeyWord Option Base

Visual Basic 6.0 - Memahami Procedure Function

Di bawah ini merupakan beberapa contoh sehingga Anda dapat memahami Statement Function dalam Visual Basic 6.0, untuk memahaminya copy dan pastekan kode di bawah ini:
Private Sub Form_Load() 
TampilkanPesan_0 'baris ke-1
TampilkanPesan_1 "Ini pesan" 'baris ke-2
MsgBox TampilkanPesan_2("Ini pesan") 'baris ke-3
End Sub

'Fungsi ini yang dipanggil dalam baris ke-1
Function TampilkanPesan_0()
MsgBox "Ini pesan"
End Function

'Fungsi ini yang dipanggil dalam baris ke-2
Function TampilkanPesan_1(Pesan As String)
MsgBox Pesan
End Function

'Fungsi ini yang dipanggil dalam baris ke-3
Function TampilkanPesan_2(Pesan As String) As String
TampilkanPesan_2 = Pesan
End Function
Catatan:
Fungsi pada baris ke-1 tanpa argumen
Fungsi pada baris ke-2 dengan argumen (yang diberi warna merah)
Fungsi pada baris ke-3 disertai argumen & Return Value (yang diberi tanda merah)

Perhatikan cara memanggilnya!

Nah, sekarang Anda telah memahami Statement Function (Fungsi Statement) dalam Visual Basic 6.0. Perlu diketahui:
  1. Function merupakan sebagian dari Procedure, mafhumnya seluruh Function merupakan Procedure akan tetapi tidak seluruh Function merupakan Procedure
  2. Seluruh kode dalam Visual Basic ditulis dalam tubuh Procedure, Betapapun rumitnya sebuah program tersebut.
READ MORE - Visual Basic 6.0 - Memahami Procedure Function

VB6 Code - .Show Atau .Zorder dalam MDI

Mengetahui jawaban dari pertanyaan, Mana yang akan dipilih .Show atau .Zorder dalam MDI? lebih baik kita praktekan saja dengan cara buat 1 form MDI dan 4 form SDI, 3 form memiliki properties .MDI Child = True kemudian 1 form kemudian 1 form memiliki properties .MDI Child = False. Selanjutnya Copy dan pastekan kode di bawah ini:
Private Sub Command1_Click()
Form1.ZOrder 0
End Sub

Private Sub Command2_Click()
Form2.ZOrder 0
End Sub

Private Sub Command3_Click()
Form3.ZOrder 0
End Sub

Private Sub Command4_Click()
Form4.ZOrder 0
End Sub

Private Sub MDIForm_Load()
Form1.Show 'dengan properties .MDI Child = True
Form2.Show 'dengan properties .MDI Child = True
Form3.Show 'dengan properties .MDI Child = True
Form4.Show 'dengan properties .MDI Child = False
End Sub
Sekarang, coba klik masing-masing Button dari mulai Command1 sampai Command4. Eksperimen dari tahap pertama selesai.
Private Sub Command1_Click()
Form1.Show
End Sub

Private Sub Command2_Click()
Form2.Show
End Sub

Private Sub Command3_Click()
Form3.Show
End Sub

Private Sub Command4_Click()
Form4.Show
End Sub

Private Sub MDIForm_Load()
Form1.Show 'dengan properties .MDI Child = True
Form2.Show 'dengan properties .MDI Child = True
Form3.Show 'dengan properties .MDI Child = True
Form4.Show 'dengan properties .MDI Child = False
End Sub
Sekarang, coba klik masing-masing Button dari mulai Command1 sampai Command4. Eksperimen dari tahap pertama selesai.

Apa yang bisa kita simpulkan? Yah, Anda benar tidak ada pengaruhnya sama sekali!

Sekarang coba kita beri 1 objek (misalnya TextBox) pada masing-masing form selain form MDI, coba klik masing-masing Button dari mulai Command1 sampai .Command4. Apa yang bisa kita simpulkan?

Selanjutnya kembalikan lagi properties .Show menjadi method .Zorder 0, coba klik masing-masing objek button dari mulai Command1 sampai Command4, Apa yang bisa Anda tarik kesimpulan? yah, benar. Menakjubkan! Apa yang menakjubkan? Saya tidak tahu! sekarang pertanyaannya, Manakah yang akan dipilih .Show atau .Zorder dalam MDI?
READ MORE - VB6 Code - .Show Atau .Zorder dalam MDI

VB6 Code - Fungsi Untuk Me-Minimize Seluruh Windows

Di bawah ini merupakan fungsi VB6 untuk me-minimize Seluruh Windows. Karena menggunakan metode Early Binding maka, Untuk keperluan ini Anda harus mereferensi objek "Microsoft Shell Controls And Automation" atau "Shell32.dll" yang biasa terletak pada SystemRoot\System32 (c:\Windows\System32\Shell32.dll).

Jika Anda ingin menggunakan metode Late Binding maka gantilah kode berikut:

Dim Sh as new Shell32.Shell

Menjadi:

Dim Sh as Object
Set Sh = CreateObject("Shell.Application")
Option Explicit

Sub MinimizeAll()
Dim sh As New Shell32.Shell
sh.MinimizeAll
Set sh = Nothing
End Sub

'Contoh penggunaan
Private Sub Command1_Click()
Call MinimizeAll
End Sub
READ MORE - VB6 Code - Fungsi Untuk Me-Minimize Seluruh Windows

VB6 Code - Fungsi Tile Vertically Seluruh Windows

Di bawah ini merupakan fungsi VB6 untuk menjadikan Tile Vertically Seluruh Windows. Karena menggunakan metode Early Binding maka, Untuk keperluan ini Anda harus mereferensi objek "Microsoft Shell Controls And Automation" atau "Shell32.dll" yang biasa terletak pada SystemRoot\System32 (c:\Windows\System32\Shell32.dll).

Jika Anda ingin menggunakan metode Late Binding maka gantilah kode berikut:

Dim Sh as new Shell32.Shell

Menjadi:

Dim Sh as Object
Set Sh = CreateObject("Shell.Application")
Option Explicit

Sub TileVertically()
Dim sh As New Shell32.Shell
sh.TileVertically
Set sh = Nothing
End Sub

'Contoh penggunaan
Private Sub Command1_Click()
Call TileVertically
End Sub
READ MORE - VB6 Code - Fungsi Tile Vertically Seluruh Windows

VB6 Code - Fungsi Tile Horizontally Seluruh Windows

Di bawah ini merupakan fungsi VB6 untuk menjadikan Tile Horizontally Seluruh Windows. Karena menggunakan metode Early Binding maka, Untuk keperluan ini Anda harus mereferensi objek "Microsoft Shell Controls And Automation" atau "Shell32.dll" yang biasa terletak pada SystemRoot\System32 (c:\Windows\System32\Shell32.dll).

Jika Anda ingin menggunakan metode Late Binding maka gantilah kode berikut:

Dim Sh as new Shell32.Shell

Menjadi:

Dim Sh as Object
Set Sh = CreateObject("Shell.Application")
Option Explicit

Sub TileHorizontally()
Dim sh As New Shell32.Shell
sh.TileHorizontally
Set sh = Nothing
End Sub

'Contoh penggunaan
Private Sub Command1_Click()
Call TileHorizontally
End Sub
READ MORE - VB6 Code - Fungsi Tile Horizontally Seluruh Windows

VB6 Code - Menampilkan Explorer Dengan Directory Tertentu

Di bawah ini merupakan fungsi VB6 untuk menampilkan explorer dengan directory tertentu. Karena menggunakan metode Early Binding maka, Untuk keperluan ini Anda harus mereferensi objek "Microsoft Shell Controls And Automation" atau "Shell32.dll" yang biasa terletak pada SystemRoot\System32 (c:\Windows\System32\Shell32.dll).

Jika Anda ingin menggunakan metode Late Binding maka gantilah kode berikut:

Dim Sh as new Shell32.Shell

Menjadi:

Dim Sh as Object
Set Sh = CreateObject("Shell.Application")
Sub Explore(vDir)
Dim sh As New Shell32.Shell
sh.Explore vDir
Set sh = Nothing
End Sub

'Contoh penggunaan
Private Sub Command1_Click()
Call Explore("C:\")
End Sub
READ MORE - VB6 Code - Menampilkan Explorer Dengan Directory Tertentu

VB6 Code - Fungsi Untuk Membuka Directory Tertentu

Di bawah ini merupakan fungsi VB6 untuk membuka directory tertentu. Karena menggunakan metode Early Binding maka, Untuk keperluan ini Anda harus mereferensi objek "Microsoft Shell Controls And Automation" atau "Shell32.dll" yang biasa terletak pada SystemRoot\System32 (c:\Windows\System32\Shell32.dll).

Jika Anda ingin menggunakan metode Late Binding maka gantilah kode berikut:

Dim Sh as new Shell32.Shell

Menjadi:

Dim Sh as Object
Set Sh = CreateObject("Shell.Application")
Option Explicit

Function OpenPath(vDir)
Dim sh As New Shell32.Shell
sh.Open vDir
Set sh = Nothing
End Function

'Contoh penggunaan
Private Sub Command1_Click()
Call OpenPath("C:\")
End Sub
READ MORE - VB6 Code - Fungsi Untuk Membuka Directory Tertentu

VB6 Code - Fungsi Untuk Meng-Cascade Seluruh Windows

Di bawah ini merupakan fungsi VB6 untuk Meng-Cascade Seluruh Windows. Karena menggunakan metode Early Binding maka, Untuk keperluan ini Anda harus mereferensi objek "Microsoft Shell Controls And Automation" atau "Shell32.dll" yang biasa terletak pada SystemRoot\System32 (c:\Windows\System32\Shell32.dll).

Jika Anda ingin menggunakan metode Late Binding maka gantilah kode berikut:
Dim Sh as new Shell32.Shell

Menjadi:

Dim Sh as Object
Set Sh = CreateObject("Shell.Application")
Option Explicit

Sub CascadeWindows()
Dim sh As New Shell32.Shell
sh.CascadeWindows
Set sh = Nothing
End Sub

'Contoh penggunaan
Private Sub Command1_Click()
CascadeWindows
End Sub
READ MORE - VB6 Code - Fungsi Untuk Meng-Cascade Seluruh Windows