• Tidak ada hasil yang ditemukan

KONTROL COMMON DIALOG - ADOC.PUB

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "KONTROL COMMON DIALOG - ADOC.PUB"

Copied!
11
0
0

Teks penuh

(1)

KONTROL COMMON DIALOG

Kontrol CommonDialog menyediakan sebuah jalan yang mudah dan nyaman untuk memanggil kotak dialog windows yang umum seperti: Color (warna), Font, Printer, FileOpen (membuka file), dan FileSave (menyimpan file), dan anda juga dapat menampilkan suatu halaman dalam file Help. Dalam kontrol ini yang bisa dimanfaatkan adalah hanya properti dan metode, tidak ada kejadian yang dipicu.

Dalam kebanyakan kasus, anda tidak perlu mengatur suatu properti apapun saat design-time dikarenakan pengaturan tersebut sering kali lebih baik dilakukan pada saat run-time, khususnya ketika anda menggunakan kontrol yang sama untuk menampilkan kotak dialog yang berbeda-beda. Kontrol tersebut bersifat invisible (tak nampak) selama pengeksekusian, sehingga dia tidak mendukung properti seperti Left, Visible, atau TabIndex. Kontrol ini terdapat dalam file ComDlg32.ocx, dimana harus didisribusikan dengan setiap aplikasi Visual Basic yang menggunakannya.

Kurangnya antarmuka yang visible (nampak) dan kurangnya kejadian-kejadian yang dapat dipicu bukan berarti kontrol ini mudah untuk digunakan. Kenyataannya, menggunakan kontrol CommonDialog merupakan suatu hal yang kompleks dikarenakan dia mendukung banyak pilihan, dimana beberapa di antaranya tidak selalu intuitif (sesuai dengan keinginan atau perkiraan). Beberapa properti mempunyai makna yang berbeda, tergantung common dialog yang mana yang anda tampilkan. Misalnya, properti Flags adalah sebuah properti bit-field, dan arti dari setiap bit adalah berbeda untuk setiap kotak common dialog yang bermacam-macam.

Satu dari beberapa properti yang dapat mempunyai arti yang sama tanpa menghiraukan kotak common dialog yang mana yang anda tampilkan adalah CancelError. Jika properti ini adalah true, seorang end user (pengguna akhir) yang menutup kotak dialog dengan menggunakan kunci Cancel menyebabkan error 32755 (sama dengan konstan cdlCancel) dibangkitkan saat pemanggilan program. Kontrol CommonDialog meliputi konstan intrinsik untuk semua error yang bisa dibangkitkan saat run-time.

Kontrol CommonDialog mempunyai 6 metode: ShowColor, ShowFont, ShowPrinter, ShowOpen, ShowSave, dan ShowHelp. Setiap metode menampilkan kotak common dialog yang berbeda, seperti yang akan dijelaskan pada seksi berikutnya.

DIALOG WARNA

Kotak common dialog Color (warna) mengijinkan pengguna untuk memilih suatu warna. Dia juga mengijinkan pengguna untuk menentukan atau meracik warna baru, namun anda dapat tetap menjaga hak ini dari pengguna dengan memberikan nilai 4cdlCCPreventFullOpen pada properti Flags.

Alternatifnya, anda dapat menampilkan seksi custom color dari kotak dialog saat dialog muncul dengan mengatur bit 2cdlCCFullOpen. (Terlihat pada gambar 1). Anda dapat memulai menyoroti sebuah warna dalam kotak dialog dengan memberikan nilai RGB ke properti Color dan mengatur bit 1-cdlCCRGBInit dalam properti Flags, sebagaimana dalam contoh berikut :

' Mengijinkan pengguna mengganti ForeColor dari kontrol Text1.

With CommonDialog1

' Mencegah penampilan seksi custom color dari dialog.

.Flags = cdlCCPreventFullOpen Or cdlCCRGBInit .Color = Text1.ForeColor

.CancelError = False .ShowColor

Text1.ForeColor = .Color End With

Ketika anda menyediakan sebuah inisial error, anda tidak perlu mengatur properti CancelError ke true;

jika pengguna mengklik pada kunci Cancel, nilai dari properti Color tidak berubah.

(2)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

Gambar 1. Kotak common dialog Color, dengan seksi pembuatan warna custom sudah terbuka.

DIALOG FONT

Kotak dialog Font mengijinkan pengguna memilih nama dan atribut font. Anda dapat menginisialisasi nilai yang ditunjukkan dalam kotak dialog, dan anda dapat memutuskan atribut mana yang dapat dimodifikasi. Tentu saja itu semua tergantung pada anda untuk menerapkan atribut-atribut tersebut pada kontrol dan obyek dalam aplikasi anda. Contoh dari kotak dialog Font, dengan semua pilihan di-enable-kan, seperti yang terlihat pada gambar 2.

Gambar 2. Kotak dialog Font

(3)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

Atribut-atribut font dapat diinisialisasi (dan diperoleh saat pengguna menutup kotak dialog) melalui sejumlah properti yang namanya sudah menunjukkan kegunaannya: FontName, FontSize, FontBold, FontItalic, FontUnderLine, FontStrikeThru, dan Color.

Ketika menggunakan kotak common dialog Font, properti Flags menerima semua pilihan seperti yang dijabarkan pada tabel 1. Anda menggunakan flag ini untuk menentukan font-font apa yang terdaftar dalam kotak dialog dan untuk membatasi pilihan pengguna. Satu dari bit-bit yang seharusnya selalu anda sertakan adalah cdlCFForceFontExist. Disamping itu, minimal satu dari empat nilai yang pertama di tabel 1 harus dispesifikasikan; jika tidak kontrol CommonDialog akan memunculkan sebuah error 24574 ”No fonts exist.” (tidak ditemukan font).

Tabel 1. Nilai-nilai untuk properti Flags untuk kotak common dialog Font.

Constant Description

cdlCFScreenFonts Menampilkan font-font layar.

cdlCFPrinterFonts Menampilkan font-font printer.

cdlCFBoth Menampilkan baik font-font layar maupun printer. (Ini merupakan hasil gabungan dari cdlCFScreenFonts dan cdlCFPrinterFonts).

cdlCFWYSIWYG Menampilkan font-font yang hanya tersedia pada layar dan printer.

cdlCFANSIOnly Membatasi pilihan ke font-font yang menggunakan kumpulan karakter ANSI.

cdlCFFixedPitchOnly Membatasi pilihan ke font-font yang tidak proporsional (fixed pitch).

cdlCFNoVectorFonts Membatasi pilihan ke font-font nonvector.

cdlCFScalableOnly Membatasi pilihan ke font-font yang scalable (terukur).

cdlCFTTOnly Membatasi pilihan ke font-font TrueType.

cdlCFNoSimulations Membatasi pilihan ke font-font yang bukan merupakan simulasi dari font GDI.

cdlCFLimitSize Membatasi pilihan ke font-font dengan ukuran yang terdapat dalam range yang telah diindikasikan oleh properti Min dan Max.

cdlCFForceFontExist Memunculkan error jika pengguna memilih suatu font atau style yang tak ada.

cdlCFEffects Meng-enable-kan area strikethrough (coret kata), underline (garis bawah), dan color (warna) dalam kotak dialog.

cdlCFNoFaceSel Tidak memilih nama font.

cdlCFNoSizeSel Tidak memilih ukuran font.

cdlCFNoStyleSel Tidak memilih stle font. (Dapat dicoba saat keluar untuk menentukan apakah pengguna memilih suatu style).

cdlCFHelpButton Menampilkan tombol Help.

Kode berikut ini mengijinkan pengguna untuk memodifikasi atribut-atribut font dari sebuah kontrol TextBox. Dan membatasi pemilihan pengguna terhadap font-font layar yang ada dan memaksa ukuran font dalam range 8 sampai 80 poin.

(4)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

With CommonDialog1

.Flags = cdlCFScreenFonts Or cdlCFForceFontExist Or cdlCFEffects _ Or cdlCFLimitSize

.Min = 8 .Max = 80

.FontName = Text1.FontName .FontSize = Text1.FontSize .FontBold = Text1.FontBold .FontItalic = Text1.FontItalic

.FontUnderline = Text1.FontUnderline .FontStrikethru = Text1.FontStrikethru .CancelError = False

.ShowFont

Text1.FontName = .FontName Text1.FontBold = .FontBold Text1.FontItalic = .FontItalic Text1.FontSize = .FontSize

Text1.FontUnderline = .FontUnderline Text1.FontStrikethru = .FontStrikethru End With

Dalam kasus tertentu, anda tidak perlu mengatur properti CancelError ke true karena jika pengguna mengklik tombol Cancel, kontrol tidak memodifikasi properti Fontxxxx apapun dan semua nilai properti Fontxxxx dapat diberikan atau ditugaskan kembali ke kontrol tanpa adanya suatu efek yang tak diinginkan.

Jika anda tidak ingin menginisialisasi suatu area dengan nilai yang telah ditetapkan dengan baik, anda memiliki suatu masalah yang lebih kompleks.

DIALOG PRINTER

Kontrol CommonDialog dapat menampilkan dua dialog dengan jelas: kotak dialog Print Setup yang mengijinkan pengguna untuk memilih atribut-atribut dari sebuah printer dan dialog Print standar yang mengijinkan pengguna memilih banyak pilihan dari suatu print job (tugas mencetak), seperi bagian mana dari dokumen yang seharusnya dicetak (semua, serangkaian halaman, atau yang sedang dipilih), jumlah salinan, dan seterusnya. Lihat gambar 3 dan 4 untuk contoh dari kotak common dialog ini.

(5)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

Gambar 3. Kotak common dialog Print

Gambar 4. Kotak common dialog Print Setup

Anda dapat memutuskan kotak dialog yang mana yang muncul dengan mengatur bit cdlPDPrintSetup dalam properti Flags. Daftar bit-bit yang dapat diatur dalam properti Flags secara lengkap dijabarkan pada tabel 2.

(6)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

Tabel 2. Nilai-nilai untuk properti Flags untuk kotak common dialog printer. Hampir semua dari bit-bit ini tidak mempunyai arti jika anda menampilkan sebuah kotak dialog Print Setup (Flags = cdlPDPrintSetup).

Konstan Deskripsi

cdlPDPrintSetup Menampilkan kotak dialog Print Setup disbanding kotak dialog Print.

cdlPDNoWarning Mencegah sebuah pesan error jika tidak terdapat printer default apapun.

cdlPDHidePrintToFile Menyembunyikan CheckBox Print To File.

cdlPDDisablePrintToFile Men-disable CheckBox Print To File.

cdlPDNoPageNums Men-disable tombol pilihan Pages.

cdlPDNoSelection Men-disable tombol pilihan Selection.

cdlPDPrintToFile Status dari CheckBox Print To File.

cdlPDAllPages Status dari tombol pilihan All Pages.

cdlPDPageNums Status dari tombol pilihan Pages.

cdlPDSelection Status dari tombol pilihan Selection.

cdlPDCollate Status dari CheckBox Collate (tersusun).

cdlPDReturnDC Properti hDC mengembalikan konteks peralatan dari printer yang dipilih.

cdlPDReturnIC Properti hDC mengembalikan konteks informasi dari printer yang dipilih.

cdlPDReturnDefault Mengembalikan nama printer default.

cdlPDUseDevModeCopies Mengatur dukungan untuk multiple copies (banyak salinan).

cdlPDHelpButton Menampilkan tombol Help.

Ketika anda sedang menampilkan kotak dialog printer, properti Min dan Max adalah nilai minimum dan maksimum yang valid untuk nomer halaman dimana FromPage dan ToPage adalah nilai aktual yang ditampilkan dalam kotak dialog. Properti Copies menunjukkan jumlah salinan yang dimasukkan oleh pengguna.

Properti Printer Default menentukan apakah obyek printer Visual Basic secara otomatis diatur untuk menyesuaikan dengan printer yang dipilih oleh pengguna.

Ketika anda menampilkan kotak dialog Print Setup, properti Orientation mengatur dan mengembalikan orientasi dari tugas printer yang dipilih. (pengaturan bisa berupa 1cdlPortrait atau Landscape).

Jika anda menampilkan kotak dialog printer yang biasanya, anda perlu memutuskan apakah tombol pilihan Pages dan Selection di-enabled.

On Error Resume Next With CommonDialog1

' Prepare to print using the Printer object.

.PrinterDefault = True

' Disable printing to file and individual page printing.

(7)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

.Flags = cdlPDDisablePrintToFile Or cdlPDNoPageNums If Text1.SelLength = 0 Then

' Hide Selection button if there is no selected text.

.Flags = .Flags Or cdlPDNoSelection Else

' Else enable the Selection button and make it the default ' choice.

.Flags = .Flags Or cdlPDSelection End If

' We need to know whether the user decided to print.

.CancelError = True .ShowPrinter

If Err = 0 Then

If .Flags And cdlPDSelection Then Printer.Print Text1.SelText Else

Printer.Print Text1.Text End If

End If End With

(8)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

DIALOG F ILE O PEN DAN F ILE S AVE Properti Secara Umum

Anda dapat memilih dari sejumlah cara untuk menentukan / mengkostumisasi penampilan dan kelakuan dari kotak dialog FileOpen dan FileSave. Misal, properti DialogTitle menentukan caption (judul) dari kotak dialognya, dan InitDir adalah direktori yang ditampilkan saat dialog muncul. Saat kotak dialog dipanggil, properti FileName berisi nama dari file yang disarankan. Dan ketika kotak dialog ditutup, dia berisi nama dari file yang dipilih oleh pengguna. Properti DefaultExt dapat diberikan ke ekstensi default dari sebuah nama file sehingga kontrol dapat secara otomatis mengembalikan nama yang lengkap dalam properti FileName bahkan jika pengguna tidak menentukan ekstensinya. Alternatifnya, anda dapat mengatur dan memperoleh nama file dasar (yaitu, nama dari file tanpa ekstensi) dengan menggunakan properti FileTitle.

Anda dapat menentukan file filters (penyaring file) tersedia buat pengguna saat menelusuri isi dari suatu direktori. Anda melakukan ini dengan memberikan sebuah string pada properti Filter yang berisi pasangan (description, filter), dengan item-item yang dipisahkan oleh karakter pipe (|). Misal, ketika bekerja dengan file grafik, anda dapat menentukan tiga filter dengan cara sebagai berikut :

' Anda dapat menspesifikasikan banyak filter dengan menggunakan semicolon sebagai pemisah.

CommonDialog1.Filter = "Semua File|*.*|Bitmaps|*.bmp|Metafiles|*.wmf;*.emf"

Anda yang memutuskan filter apa yang pertama kali dipilih dengan menggunakan properti FilterIndex:

' Menampilkan filter Bitmaps (Filter berbasis satu) CommonDialog1.FilterIndex = 2

Tabel 3. Nilai-nilai dari properti Flags untuk kotak common dialog FileOpen dan FileSave.

Konstan Deskripsi

cdlOFNReadOnly Status CheckBox dari Open As Read-Only (hanya FileOpen).

cdlOFNOverwritePrompt Menampilkan sebuah pesan sebelum menindas file yang sudah ada (hanya FileSave)

cdlOFNHideReadOnly Menyembunyikan CheckBox Open As Read-Only. Bit ini seharusnya selalu diset dalam kotak dialog FileSave.

cdlOFNNoChangeDir Jangan memodifikasi direktori sekarang (terpilih). Secara default, sebuag dialog File mengubah drive dan direktori yang sedang terpilih untuk menyesuaikan alamat atau jalur dari file yang dipilih oleh pengguna.

cdlOFNNoValidate Menerima karakter-karakter invalid dalam nama file. (Tidak direkomendasikan).

cdlOFNAllowMultiselect Meng-enable pemilihan banyak file. (hanya FileOpen).

cdlOFNExtensionDifferent Ekstensi dari file terpilih berbeda dari nilai pada properti DefaultExt.

cdlOFNPathMustExist Menolak nama file dengan alamat atau jalur yang valid atau tidak eksis.

(Sangat direkomendasikan).

(9)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

cdlOFNFileMustExist Menolak memilih file yang tidak ada. (hanya FileOpen).

cdlOFNCreatePrompt Jika file yang terpilih tidak ada, menanyakan apakah sebaiknya akan membuat file baru. Secara otomatis mengeset cdlOFNFileMustExist dan cdlOFNPathMustExist. (hanya FileOpen).

cdlOFNShareAware Mengabaikan kesalahan network sharing (berbagi dalam jaringan).

Tidak direkomendasikan, gunakan hanya jika anda ingin memecahkan konflik pada sharing lewat kode.

cdlOFNNoReadOnlyReturn Menolak untuk memilih file read-only atau file yang terletak pada direktori write-protected (dilindungi dari penulisan).

cdlOFNExplorer Menggunakan antarmuka yang mirip Windows Explorer dalam kotak dialog multiple-selection (banyak pemilihan).

cdlOFNLongNames Flag ini meng-enable kotak dialog untuk banyak pemilihan dengan nama file yang panjang yang menggunakan style Windows Explorer.

cdlOFNNoDereferenceLinks Mengembalikan nama dan jalur file yang dipilih pengguna, bahkan jika ini adalah sebuah shortcut file LNK yang menunjuk ke file lain. Jika flag ini diabaikan, ketika pengguna memilih sebuah file LNK kotak dialog mengembalikan nama dan alamat dari file yang direferensikan.

cdlOFNHelpButton Menampilkan tombol Help.

cdlOFNNoLongNames Tidak mengijinkan nama file yang panjang.

Saat bekerja dengan sebuah kotak dialog FileOpen dan FileSave, anda seharusnya selalu mengeset properti CancelError ke true karena anda perlu suatu jalan untuk mencari tahu apakah pengguna membatalkan operasi file.

Dialog FileSave

Gambar 5 pada halaman berikut adalah contoh kotak dialog FileSave. Rutin berikut berisi kode untuk menerima sebuah referensi ke suatu kontrol TextBox dan ke kontrol CommonDialog. Rutin tersebut menggunakan kontrol kedua untuk meminta nama file sebelum dia menyimpan isinya ke kontrol TextBox dari file terpilih. Dia mengembalikan nama dari file dalam argumen ketiga.

' Mengembalikan false jika perintah Save dibatalkan, sebaliknya true.

Function SaveTextControl(TB As Control, CD As CommonDialog, _ Filename As String) As Boolean

Dim filenum As Integer On Error GoTo ExitNow

CD.Filter = "Semua file (*.*)|*.*|Text files|*.txt"

CD.FilterIndex = 2 CD.DefaultExt = "txt"

CD.Flags = cdlOFNHideReadOnly Or cdlOFNPathMustExist Or _ cdlOFNOverwritePrompt Or cdlOFNNoReadOnlyReturn CD.DialogTitle = "Pilih file target "

CD.Filename = Filename

(10)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

' Keluar jika pengguna menekan Cancel.

CD.CancelError = True CD.ShowSave

Filename = CD.Filename

' Menuliskan isi kontrol.

filenum = FreeFile()

Open Filename For Output As #filenum Print #filenum, TB.Text;

Close #filenum ' Tanda keberhasilan.

SaveTextControl = True ExitNow:

End Function

Anda dapat menggunakan rutin SaveTextControl sebagai berikut :

Dim NamaFile As String

If SaveTextControl(RichTextBox1, CommonDialog1, NamaFile) Then MsgBox "Teks telah disimpan ke file " & NamaFile

End If

Gambar 5. Kotak CommonDialog FileSave.

(11)

Diktat Pemrograman Visual Basic 6.0 By: Galih Hermawan, S.Kom Jurusan Teknik Informatika - UNIKOM

Jangan lupa untuk menspesifikasikan bit cdlOFNHideReadOnly untuk kotak dialog FileSave. Jika anda lupa, CheckBox Open As Read-Only akan muncul di kotak dialog, dimana dapat membingungkan pengguna, yang sedang menyimpan file, bukan membukanya. Flag lain yang cukup nyaman adalah cdlOFNNoReadOnlyReturn, dimana meyakinkan bahwa file tidak memiliki atribut read-only dan oleh karena itu dapat ditindas tanpa mengakibatkan error.

Dialog FileOpen Pemilihan Tunggal

Kontrol CommonDialog mendukung kotak dialog FileOpen untuk pemilihan tunggal atau banyak.

Berikut ini contoh rutin untuk memuatkan isi dari file teks ke control TextBox :

' Mengembalikan false jika perintah dibatalkan, sebaliknya true.

Function LoadTextControl(TB As Control, CD As CommonDialog, _ Filename As String) As Boolean

Dim filenum As Integer On Error GoTo ExitNow

CD.Filter = "Semua file (*.*)|*.*|Text files|*.txt"

CD.FilterIndex = 2 CD.DefaultExt = "txt"

CD.Flags = cdlOFNHideReadOnly Or cdlOFNFileMustExist Or _ cdlOFNNoReadOnlyReturn

CD.DialogTitle = "Pilih file sumber "

CD.Filename = Filename

' Keluar jika pengguna menekan Cancel.

CD.CancelError = True CD.ShowOpen

Filename = CD.Filename

' Membaca isi file ke kontrol.

filenum = FreeFile()

Open Filename For Input As #filenum TB.Text = Input$(LOF(filenum), filenum) Close #filenum

' Tanda keberhasilan.

LoadTextControl = True ExitNow:

End Function

Jika anda tidak menspesifikasikan bit cdlOFNHideReadOnly dalam properti Flag, kotak common dialog akan menyertakan CheckBox Open As Read-Only. Untuk mengetahui apakah pengguna mengklik CheckBox, anda harus mengetes properti Flags saat keluar sebagai berikut :

If CD.Flags And cdlOFNReadOnly Then ' File telah dibuka dalam mode read-only.

' (Misalnya, anda akan men-disable perintah File-Save).

End If

Referensi

Dokumen terkait

Berdasarkan data di atas dapat dilihat hasil penelitian dari 12 responden kelompok control menunjukan skala insomnia rating scale sebelum yang tidak dilakukan