19 July 2014

VB6: Event Form

Kita akan membahas event-event yang sering digunakan dalam Form. Buat sebuah project standard atur UI design form sebagai berikut untuk lebih memahami event-event tersebut.


1. Initialize
Initialize event berjalan saat pertama kali program dijalankan atau form dibuka. Event ini terjadi sebelum form window sebenarnya dibuat. Kita dapat menggunakan event ini untuk setting property.
Contoh:
Private Sub Form_Initialize()
    Me.Caption = "My App"
    Me.BackColor = vbRed
End Sub

2. Load
Setelah event Initialize, event Load dijalankan saat form dimuat di memory.  Kita juga dapat menggunakan event ini untuk setting property dan inisialisasi variable.
Sebagai catatan event ini tidak dapat digunakan untuk mengatur fungsi grafis (seperti SetFocus dan Print) karena pada dasarnya form belum terlihat.
Contoh:
Private Sub Form_Load()
lblWidth.Caption = "Width"
lblHeight.Caption = "Height"
End Sub

3. Resize
Setelah event load form akan menerima event resize. Event resize ini juga dijalankan saat kita mengubah ukuran form baik secara manual saat aplikasi berjalan maupun secara pemrograman.
Contoh:
Private Sub Form_Resize()
txtWidth.Text = Me.Width
txtHeight.Text = Me.Height
End Sub

4. Activate dan Deactivate
Setelah event resize form akan menjalankan event Activate. Saat bekerja dengan beberapa form, activate event akan berjalan saat form bersangkutan menjadi form yang aktif pada aplikasi berjalan, dan event deactivated akan berjalan saat form lain yang menjadi form aktif.
Private Sub Form_Activate()
lblStatus.Caption = "Activated"
End Sub

Private Sub Form_Deactivate()
lblStatus.Caption = "Deactivated"
End Sub


Untuk melihat bagaimana event Deactivated bekerja, kita tambahkan 1 form lain pada project dengan cara:
Untuk menambahkan form klik menu Project -> Add Form.

Atau klik kanan pada Project Explorer -> Add -> Form.

Kemudian akan muncul dialog yang menampilkan pilihan template form.

Pilih Form kemudian klik tombol Open.

Pada Form1, tambahkan sebuah comman button untuk memanggil form2.

Ketikan code berikut dan coba run program.
Private Sub cmdShowForm_Click()
Form2.Show
End Sub



5. QueryUnload
Saat kita menutup form, pertama-tama form akan menerima event Query Unload baru kemudian event Unload. Event ini berjalan saat form “baru akan” ditutup, sehingga biasanya digunakan untuk konfirmasi apakah form akan benar-benar ditutup . Jika tidak maka dapat menggunakan cancel.
Event procedure ini memiliki 2 parameter yaitu Cancel dan UnloadMode.  Cancel parameter digunakan saat ingin membatalkan tutup form.
Contoh:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If MsgBox("Tutup Form?", vbYesNo, "Konfirmasi") <> vbYes Then
   Cancel = 1
End If
End Sub


 Parameter UnloadMode adalah parameter untuk mengidentifikasi dari mana/menggunakan apa form yang bersangkutan ditutup. Terdapat 6 konstanta simbolik untuk parameter ini.
•    vbFormControlMenu: saat form ditutup oleh tombo close yang ada di form.
    
•    vbFormCode: saat form ditutup dengan code yang kita buat.
•     vbAppWindows: saat keseluruhan aplikasi ditutup.
•    vbAppTaskManager: saat aplikasi ditutup dengan task manager.
•    vbFormMDIForm: saat form ditutup dari MDI parent. (dijelaskan lebih lanjut)
•     vbFormOwner: saat form owner (pemanggil modal) ditutup. (dijelaskan lebih lanjut)

Contoh:
Tambahkan command button close pada form.

Ubah code pada QueryUnload event menjadi:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If UnloadMode = vbFormControlMenu Then
        MsgBox "Ditutup dari kontrol menu"
    ElseIf UnloadMode = vbFormCode Then
        MsgBox "Ditutup dari code"
    End If
End Sub


6. Unload
Selanjutnya event berjalan adalah Unload, dapat digunakan untuk pesan perpisahan atau juga peringatan save sebelum user benar-benar menutup form.

Private Sub Form_Unload(Cancel As Integer)
MsgBox "bye-bye"
End Sub


Sama dengan event QueryUnload, event ini juga mempunyai parameter Cancel yang penggunaan nya mirip  dengan event tersebut.


Click here if you like this article.


0 comments: