Tuesday, June 12, 2012

Contoh Iterasi VBControl dan VBComponent - VB6 Add-ins

Menjelaskan iterasi untuk VBControl dan VBComponent menggunakan For ... Each - Apabila kita membuat sebuah TextBox pada Form, maka secara default property Text dari TextBox tersebut akan memiliki isi berupa tulisan Text1, Text2, dan seterusnya. Kita dapat menghilangkan isi dari dari TextBox tersebut secara manual (satu persatu dihilangkan teksnya) atau menggunakan kode yang telah ditulis terdahulu. Maka pada saat design time kita dapat menggunakan kode yang ... 'just one click' dan semuanya selesai, tidak masalah berapapun jumlah TextBox atau Form yang kita miliki/buat.
Public VBInstance As VBIDE.VBE 
Public Connect As Connect

Option Explicit

Private Sub
CancelButton_Click()
Connect.Hide
End Sub

Private Sub
OKButton_Click()
ClearAllTextBoxes
'hilangkan 1 baris kode di atas, dan gunakan kode di bawah
'jika hanya ingin menghilangkan isi dari TextBox dalam satu form saja.
'ClearTextBoxes 'menghilangkan Text yang terdapat pada TextBox
End Sub

'gunakan kode di bawah, jika ingin menghilangkan isi dari TextBox
'dalam sebuah project VB6
Private Function ClearAllTextBoxes()
Dim ctl As VBComponent
Dim p As Properties
Dim i As Integer
For Each
ctl In VBInstance.ActiveVBProject.VBComponents
If ctl.Type = vbext_ct_VBForm Or ctl.Type = vbext_ct_VBMDIForm Then
ctl.DesignerWindow.SetFocus
ClearTextBoxes
End If
Next
Dim c As
VBForm
End Function

'gunakan kode di bawah jika hanya satu form selected saja.
Private Function ClearTextBoxes()
On Error Resume Next
Dim
ctr As VBIDE.VBControl
For Each ctr In VBInstance.SelectedVBComponent.Designer.VBControls
If ctr.ProgId = "VB.TextBox" Then
ctr.Properties("Text") = ""
End If
Next
End Function
Contoh di atas hanyalah contoh sederhana dan tentu saja bisa dikembangkan untuk mempermudah pembuatan aplikasi, contoh lain: MZ-Tools yang menggunakan kode iterasi di atas untuk mengetahui apakah sebuah control memiliki Access Keys (mnemonic/ShortCut Underline).