Tuesday, May 29, 2012

Modal, Modeless, Non Modal Non Modeless - VB6

Dalam menampilkan sebuah form, apalagi jika bukan method .Show yang digunakan. Method .Show ini memiliki dua parameter, yaitu [Modal] dan [OwnerForm], jadi lengkapnya adalah seperti ini Form.Show ([Modal], [OwnerForm]). Karena dua parameter (Modal, OwnerForm) ini bersifat Optional, maka kita memiliki pilihan antara memasukan argumen (satu atau kedua-duanya) atau tidak. Yang menjadi pertanyaan disini adalah, bagaimana kita dapat mengetahui perbedaan antara argumen yang dimasukan (Modal, Modeless, Non Modal Non Modeless)?

Untuk memahami perbedaan antara Modal, Modeless, Non Modal Non Modeless lebih baik kita praktekan saja. Buatlah Project Standar Exe dengan dua Form, Form1 dan Form2. Pada Form1 berilah satu CommandButton. Masukan kode di bawah ini pada Form1.
Option Explicit 

Private Sub
Command1_Click()
Form2.Show 'Non Modal Non Modeless
MsgBox "Non Modal Non Modeless"
End Sub
Jalankan kode di atas, Klik sembarang pada Form1.

Kesimpulan: Pertama, dengan menggunakan kode di atas, kode-kode selanjutnya akan tetap dijalankan (disini diwakili dengan MessageBox). Kedua, Form1 dapat menempati posisi paling depan (Zorder 0). Nah, sekarang rubahlah kodenya menjadi:
Option Explicit 

Private Sub
Command1_Click()
Form2.Show vbModal, Me 'Modal
MsgBox "Non Modal Non Modeless"
End Sub
Jalankan kode di atas, Klik sembarang pada Form1.

Kesimpulan: Pertama, dengan menggunakan kode kedua, kode-kode selanjutnya tidak bisa dijalankan (disini diwakili oleh MessageBox) sebelum Form2 di tutup. Kedua, Form1 tidak bisa menempati posisi paling depan. Sekarang, rubahlah kodenya menjadi:
Option Explicit 

Private Sub
Command1_Click()
Form2.Show vbModeless, Me
MsgBox "Non Modal Non Modeless"
End Sub
Jalankan kode di atas, klik sembarang pada Form2.

Kesimpulan: Pertama, kode-kode selanjutnya bisa dijalankan (diwakilik MessageBox). Kedua: Form1 tidak bisa menempati posisi paling depan (Zorder 0).
Nah, sekarang Anda telah memahami perbedaan antara Modal, Modeless, Non Modal Non Modeless. Mengenai argumen-argumen ini ada sebuah trik yang sangat bagus (setidaknya menurut saya sendiri), dan bisa Anda baca disini.

Semoga Bermanfaat.