| A g u s ' s V i r t u a l H o u s e |
| Griya | Aku | Artikel | Download | Link | Buku Tamu | E~mail | pengganjal |
Membuat Kotak Dialog File Tanpa ActiveX
Visual Basic (VB) merupakan bahasa yang menggunakan teknologi ActiveX, dimana komponen-komponen yang ada (dalam VB disebut control) disimpan dalam file yang berbeda (*.OCX) Hal ini menyebabkan ukuran file terkompilasinya (*.EXE,*DLL) kecil, tetapi tetapi jumlah total ruang disk yang dipakai untuk distribusi program sangat besar. Hal ini sebenarnya tidak menjadi masalah bila program yang kita buat memang besar, tetapi akan menjadi masalah serius bila kita membuat program sederhana tetapi mempunyai tampilan standard yang lengkap(menu, toolbar, statusbar, kotak dialog file open dan file save). Juga akan menjadi masalah bila program tersebut akan dibuat untuk didownload dari internet. Bagaimana mengatasi masalah ini? Ada beberapa control yang sebenarnya diambil dari sistem Windows. File ActiveX(*.OCX) yang dipakai merupakan penghubung antara Visual Basic dengan file system Windows (*.DLL). Kita bisa secara langsung memanggil fungsi system dengan menggunaka fungsi API sehingga bisa mengurangi jumlah file ActiveX(*.OCX) yang kita gunakan. Dengan catatan yang kita panggil langsung adalah komponen yang tidak perlu dibuat secara pemrograman visual. Karena jika hal ini kita lakukan kita malah akan melangkah mundur. Contoh yang bisa kita gunakan adalah kotak dialog internal Windows, misalnya kotak dialog "File Open" dan "File Save". Windows mempunyai fungsi API GetOpenFileName untuk menampilkan kotak dialog "Open File" dan GetSaveFileName untuk kotak dialog "File Save". Adapu cara menggunakan kedua fungsi tersebut adalah: lErrStatus=GetOpenFileName(OpenFile)lErrStatus=GetSaveFileName(OpenFile) OpenFile adalah fariable bertipe OPENFILENAME.yang deklarasi type-nya sebagai berikut:
Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
lErrStatus adalah variabel bertipe Long yang berisi status dari operasi yang berlangsung. Bila lErrStatus > 0 bberarti proses berhasil, sebaliknya bila lErrStatus = 0 berarti proses gagal atau dibatalkan dengan menekan tombol Cancel di dalam kotak dialog file. Untuk memudahkan Anda saya telah membuat module klas CFileDialog (lihat listing 1 <CFileDialog.txt>) yang membungkus kedua fungsi diatas. Klas ini mudah digunakan karena nama metode dan properti yang dipakai sedapat mungkin dibuat sama dengan kontrol CommonDialog. Adapun properti yang digunakan sebagai berikut:
Sedangkan metoda yang digunakan adalah:
Supaya lebih jelas bagaimana menggunakan klas CFileDialog saya telah membuat program demo berupa text editor yang saya beri nama CivilSoft Note 1.0 (CSNote.EXE) yang dibuat dengan VB 5.0 (sebelumnya menggunakan VB 4.0). Program ini masih sederhana karena memang hanya untuk demo saja. Program ini juga menggunakan beberapa teknik lain, untuk lebih jelasnya silahkan ke bagian download. Saya menerima kritik dan saran bila ternyata masih terdapat bug dalam klas CFileDialog. Semoga bermanfaat bagi pembaca sekalian. [ Top ] |
| Griya | Aku | Artikel | Download | Link | Buku Tamu | E~mail | hiden |