Tuesday, May 29, 2012

Menyembunyikan TextBox dan ComboBox Caret Menggunakan VB6

Terkadang dalam sebuah aplikasi, kita membutuhkan kode untuk menyembunyikan caret yang terdapat dalam TextBox maupun ComboBox. Nah, bagaimana cara menyembunyikan caret yang terdapat dalam TextBox maupun ComboBox menggunakan Visual Basic 6.0 (VB6)? kode di bawah mungkin jawabannya:
'simpan kode di bawah pada modul 
Option Explicit

Private Declare Function
FindWindowEx Lib "user32" Alias "FindWindowExA" ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
'Public Declare Function HideCaret Lib "user32" ByVal hwnd As Long) As Long

'prosedur memperoleh handle edit yang terdapat dalam ComboBox
Public Function EditComboHWND(cmb As ComboBox) As Long
Dim r As Long
r =
FindWindowEx(cmb.hwnd, ByVal 0&, "Edit", vbNullString)
EditComboHWND = r
End Function
Contoh penggunaan:
'simpan kode ini pada Form 
Option Explicit

Private Sub
Combo1_GotFocus()
'sembunyikan caret yang terdapat dalam ComboBox
HideCaret EditComboHWND(Combo1)
End Sub

Private Sub
Text1_GotFocus()
'sembunyikan caret yang terdapat pada TextBox
HideCaret Text1.hwnd
End Sub
READ MORE - Menyembunyikan TextBox dan ComboBox Caret Menggunakan VB6

Menyembunyikan Caret RichTextBox Menggunakan VB6

Di bawah ini merupakan kode untuk menyembunyikan caret menggunakan cara yang singkat, TIMER! dan satu fungsi API HideCaret.
'simpan kode ini pada Form 
Option Explicit

Public Declare Function
HideCaret Lib "user32" ByVal hwnd As Long) As Long

Private Sub
Timer1_Timer()
'menyembunyikan caret yang terdapat pada RichTextBox
'menggunakan cara singkat tapi kurang begitu baik, TIMER!!
HideCaret RichTextBox1.hwnd
End Sub
READ MORE - Menyembunyikan Caret RichTextBox Menggunakan VB6

Fungsi Untuk Memperoleh Nama File (Path) dari GUID

Bagaimanakah cara memperoleh nama file (file name) sebuah GUID (Globally Unique Identifier) dari sebuah ActiveX yang telah teregister dalam registry? di bawah ini merupakan implementasi dari kodenya:
'simpan kode di bawah pada modul 
Option Explicit

Dim
wsh As IWshRuntimeLibrary.WshShell

Public Function
GetFileFromGUID(ByVal GUID As String, Mayor As String, Minor As String) As String
Dim s As String
Set
wsh = New WshShell
s = wsh.RegRead("HKEY_CLASSES_ROOT\TypeLib\" & GUID & "\" & Mayor & "\" & Minor & "\Win32\")
GetFileFromGUID = s
Set
wsh = Nothing
End Function
Contoh penggunaan prosedur di atas:
'simpan kode di bawah pada form 
Private Sub Form_Load()
On Error GoTo ErrHandler
'contoh mengambil nama file RichTextBox, Versi Mayor 1.2, Versi Minor 0
MsgBox GetFileFromGUID("{3B7C8863-D78F-101B-B9B5-04021C009402}", "1.2", "0")
Exit Sub
ErrHandler:
MsgBox err.Description
End Sub
Jangan lupa untuk mereferensi pada Windows Script Host Object Model atau WSHOM.OCX
READ MORE - Fungsi Untuk Memperoleh Nama File (Path) dari GUID

PathCompactPathEx - Untuk Menyingkat Nama Path - VB6

Dalam membuat sebuah program, terkadang kita membutuhkan nama path yang disingkat, adapun tujuannya, agar nama yang berada paling akhir dapat kita baca. Lagipula jika path tidak disingkat, mungkin kita akan menemukan MRU (Most Recently Used) seperti pada gambar di bawah ini: (sebenarnya tidak se-ekstrim itu, hanya saja saya membuatnya menjadi panjang)

Untuk menyingkat nama path, kita membuhtuhkan fungsi API PathCompactPathEx. Berikut merupakan contoh kode untuk menyingkat nama path:
Option Explicit 

Private Declare Function
PathCompactPathEx Lib "shlwapi.dll" Alias "PathCompactPathExA" ByVal pszOut As String, ByVal pszSrc As String, ByVal cchMax As Long, ByVal dwFlags As Long) As Long

'simpan dalam modul
Public Function ShortFilePath(FilePath As String, Optional MaxLen As Long = 40) As String
Dim
ShortPath As String
On Error Resume Next
ShortPath = String(255, 0)
PathCompactPathEx ShortPath, FilePath, MaxLen, 0
ShortFilePath = ShortPath
End Function
Contoh penggunaan prosedur di atas:
Private Sub Form_Load() 
Text1.Text = ShortFilePath("F:\Project\Outlook Bar control + Photoshop Color Picker v1.3.2\3. Samples\Images")
'akan menghasilkan "F:\Project\Outlook Bar con...\Images"
End Sub
READ MORE - PathCompactPathEx - Untuk Menyingkat Nama Path - VB6