Showing posts with label CommandButton. Show all posts
Showing posts with label CommandButton. Show all posts

Monday, December 10, 2012

Menukar Caption CommandButton Melalui VB6 Code

Terkadang kita membutuhkan aksi tukar (toggle) property Caption dari sebuah object CommandButton. Misalnya menukar Caption CommandButton dari Start menjadi Stop atau sebaliknya dari Stop menjadi Start. Bagaimana hal tersebut bisa dilakukan melalui pemrograman Visual Basic 6.0?

Berikut ini contoh merubah menukar Caption CommandButton dari Start menjadi Stop dan sebaliknya dari Stop menjadi Start.
Option Explicit 

Private Sub
Form_Load()
Command1.Caption = "Start" 'Set nilai awal Caption dengan start
End Sub

Private Sub
Command1_Click()
If Command1.Caption = "Start" Then
Command1.Caption = "Stop"
Else
Command1.Caption = "Start"
End If
End Sub
Apabila kita terjemahkan logika di atas ke dalam bahasa manusia kira-kira seperti berikut: apabila Command1.Caption bernilai Start maka ganti Command1.Caption menjadi bernilai Stop, (Else) jika tidak Command1.Caption bernilai Start (alias Command1.Caption bernilai Stop) maka ganti Command1.Caption menjadi bernilai Start.

Demikian cara menukar Caption yang terdapat pada sebuah CommandButton menggunakan kode yang dibuat dalam bahasa pemrograman Visual Basic 6.0.
READ MORE - Menukar Caption CommandButton Melalui VB6 Code

Tuesday, May 29, 2012

BCM_SETIMAGELIST CommandButton Standar Tampil Indah Menawan

CommandButton Standar dengan Icon 32-bit. Melanjutkan project mengenai tampilan yang telah saya tulis, sekarang kita akan bereksperimen dengan konstanta API BCM_SETIMAGELIST (konstanta yang diperkenalkan Microsoft sekitar tahun 2004). Apakah kegunaan dari BCM_SETIMAGELIST ini? kegunaannya ialah untuk meng-assign serangkaian icon (tepatnya 5 atau 6 icon) ke dalam CommandButton. Adapun kelima icon tersebut secara berurutan: NORMAL, HOT, PRESSED, DISABLED, DEFAULTED. Icon-icon tersebut harus diurutkan seperti demikian, agar menghasilkan effect yang baik. Perhatikan gambar di bawah:

Karena icon yang digunakan disini memiliki color depth 32 bit, maka penggunaan ImageList standar yang terdapat pada file MSCOMCTL.OCX akan menuai masalah, oleh karenanya kita ganti dengan ImageList yang dibuat oleh vbaccelelator. Alternatif lainnya adalah membuat sendiri ImageList melalui Fungsi API.

Option Explicit 

Public Declare Sub
InitCommonControls Lib "comctl32" ) 'For XP style
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function
SetWindowLong Lib "user32" Alias "SetWindowLongA" ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function
SendMessage Lib "user32" Alias "SendMessageA" ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const
GWL_STYLE As Long = -16&
Private Const BM_SETIMAGE As Long = &HF7&
Private Const BCM_SETIMAGELIST = &H1602&

Private Type
RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Type
BUTTON_IMAGELIST
hIml As Long
rc As RECT
uAlign As Long
End Type

Public Sub
SetButtonXPIcon(btn As CommandButton, il As vbalImageList, Optional align As Long = 4, _
Optional leftMargin As Long, Optional topMargin As Long, _
Optional rightMargin As Long, Optional bottomMargin As Long)

Dim
bi As BUTTON_IMAGELIST
Dim sPic As StdPicture
Dim hicon As Long

With
bi
.uAlign = align
.rc.Left = leftMargin
.rc.Top = topMargin
.rc.Right = rightMargin
.rc.Bottom = bottomMargin
.hIml = il.hIml
End With

SendMessage btn.hwnd, BCM_SETIMAGELIST, 0, bi

End Sub
READ MORE - BCM_SETIMAGELIST CommandButton Standar Tampil Indah Menawan

Tuesday, August 23, 2011

Membuat Frame Dari CommandButton Standar - Visual Basic 6

Penjelasan mengenai pembuatan objek Frame dari CommandButton standar - Guna mendukung pekerjaan pada posting sebelumnya, yakni mengenai pembuatan dialog options yang wajar, standar, profesional seperti kebanyakan software-software lainnya (themed TabStrip, themed PictureBox, transparent CheckBox, transparent Frame, transparent OptionButton), ada baiknya Anda mengetahui beberapa fakta berikut dengan memperhatikan gambar di bawah ini:

Gambar di atas memiliki tiga objek Frame. Nah, disini ada pertanyaan, apakah Frame tersebut benar-benar sebuah Class Frame? Apakah Frame tersebut merupakan sebuah Container? ternyata Frame tersebut bukanlah frame sebenarnya tetapi objek yang berasal dari Class Button dan juga bukan sebuah Container, ini bisa dibuktikan dengan cara melakukan spy terhadap tiga objek frame di atas. [Download EliteSpy+ Andrea Batina].

Nah, untuk membuat frame dari CommandButton Anda membutuhkan module API di bawah ini:
'Simpan pada form 
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long

Private Const
BM_SETSTYLE As Long = &HF4
Private Const BS_GROUPBOX As Long = &H7&

'Contoh penggunaan
Private Sub Form_Load()
Me.ClipControls = False
SendMessage Command1.hWnd, BM_SETSTYLE, BS_GROUPBOX, 0
End Sub

Sampai disini, mungkin Anda memiliki pertanyaan, mengapa tidak menggunakan objek Frame standar dan malah menggunakan Frame yang berasal CommandButton? tentu saja jawabannya sederhana, karena CommandButton terhook dengan 'ComCtl32.dll' sehingga ia bisa mengikuti warna TabStrip atau themed PictureBox yang telah dijelaskan terdahulu. bersambung ...

Catatan: Selain Frame yang berasal dari CommandButton, Anda pun bisa menggunakan Frame yang berasal dari XPControl.OCX yang dibuat oleh Mirko Marchese.


Akhirnya, saya ucapkan terima kasih kepada Giorgio Brausi (Gibra) pemilik situs VBCorner atas pengetahuan di atas.
READ MORE - Membuat Frame Dari CommandButton Standar - Visual Basic 6