Setelah siswa Visual Basic belajar semua tentang loop dan pernyataan bersyarat dan subrutin dan sebagainya, salah satu yang berikutnya hal yang sering mereka tanyakan adalah, "Bagaimana cara saya menambahkan bitmap, file wav, kursor khusus, atau efek khusus lainnya?" Satu jawabannya adalah file sumber daya. Ketika Anda menambahkan file menggunakan file sumber Visual Studio, mereka terintegrasi langsung ke proyek Visual Basic Anda untuk kecepatan eksekusi maksimum dan kerumitan minimum pengemasan dan penggelaran anda aplikasi.
File sumber daya tersedia di VB 6 dan VB.NET, tetapi cara mereka digunakan, seperti yang lainnya, sedikit berbeda antara kedua sistem. Perlu diingat bahwa ini bukan satu-satunya cara untuk menggunakan file dalam proyek VB, tetapi ini memiliki keuntungan nyata. Misalnya, Anda bisa memasukkan bitmap ke dalam PictureBox mengontrol atau menggunakan mciSendString Win32 API. "MCI" adalah awalan yang biasanya menunjukkan Multimedia Command String.
Membuat File Sumber Daya di VB 6
Anda dapat melihat sumber daya dalam proyek di VB 6 dan VB.NET di Penjelajah Proyek window (Solution Explorer di VB.NET - mereka harus membuatnya sedikit berbeda). Proyek baru tidak akan memiliki apa pun karena sumber daya bukan alat default di VB 6. Jadi mari kita tambahkan sumber daya sederhana ke proyek dan lihat bagaimana itu dilakukan.
Langkah pertama adalah memulai VB 6 dengan memilih a EXE standar proyek pada Baru tab dalam dialog startup. Sekarang pilih Tambahan pada bilah menu, lalu Add-in Manager ... Ini akan membuka jendela dialog Add-In Manager.
Gulir ke bawah daftar dan temukan VB 6 Editor Sumber Daya. Anda bisa mengklik dua kali atau memberi tanda centang di menu Loaded / Unloaded kotak untuk menambahkan alat ini ke lingkungan VB 6 Anda. Jika Anda pikir Anda akan sering menggunakan Resource Editor, maka Anda juga dapat menempatkan tanda centang di dalam kotak Muat saat Startup dan Anda tidak harus melalui langkah ini lagi di masa depan. Klik "OK" dan Editor Sumber Daya muncul terbuka. Anda siap untuk mulai menambahkan sumber daya ke proyek Anda!
Buka bilah menu dan pilih Proyek kemudian Tambahkan File Sumber Daya Baru atau cukup klik kanan di Resource Editor dan pilih "Open" dari menu konteks yang muncul. Sebuah jendela akan terbuka, meminta Anda untuk nama dan lokasi file sumber daya. Lokasi default mungkin bukan yang Anda inginkan, jadi navigasikan ke folder proyek Anda dan masukkan nama file sumber daya baru Anda ke dalam Nama file kotak. Pada artikel ini, saya akan menggunakan nama "AboutVB.RES" untuk file ini. Anda harus mengonfirmasi pembuatan file di jendela verifikasi, dan file "AboutVB.RES" akan dibuat dan diisi ke dalam Resource Editor.
VB6 Mendukung
VB6 mendukung yang berikut ini:
- Editor tabel string
("Edit Tabel String ...") - Kursor khusus - file "CUR"
("Tambahkan Kursor ...") - Ikon khusus - file "ICO"
("Tambahkan Ikon ...") - Bitmap khusus - file "BMP"
("Tambahkan Bitmap ...") - Programmer mendefinisikan sumber daya
("Tambahkan Sumber Daya Ubahsuaian ...")
VB 6 menyediakan editor sederhana untuk string tetapi Anda harus memiliki file yang dibuat di alat lain untuk semua pilihan lain. Misalnya, Anda bisa membuat file BMP menggunakan program Windows Paint sederhana.
Setiap sumber daya dalam file sumber daya diidentifikasi ke VB 6 oleh Indo dan nama di Editor Sumber Daya. Untuk membuat sumber daya tersedia untuk program Anda, Anda menambahkannya di Editor Sumber Daya dan kemudian menggunakan Id dan sumber daya "Ketik" untuk menunjuk mereka dalam program Anda. Mari menambahkan empat ikon ke file sumber daya dan menggunakannya dalam program.
Saat Anda menambahkan sumber daya, file yang sebenarnya itu sendiri disalin ke proyek Anda. Visual Studio 6 menyediakan seluruh koleksi ikon di folder ...
C: \ Program Files \ Microsoft Visual Studio \ Common \ Graphics \ Icons
Untuk mengikuti tradisi, kita akan memilih empat "elemen" filsuf Yunani Aristoteles - Bumi, Air, Udara, dan Api - dari subdirektori Elemen. Saat Anda menambahkannya, ID diberikan oleh Visual Studio (101, 102, 103, dan 104) secara otomatis.
Untuk menggunakan ikon dalam suatu program, kami menggunakan fungsi VB 6 "Memuat Sumber Daya". Ada beberapa fungsi yang dapat dipilih:
- LoadResPicture (indeks, format) untuk bitmap, ikon, dan kursor
Gunakan konstanta standar VB vbResBitmap untuk bitmap, vbResIcon untuk ikon, dan vbResCursor untuk kursor untuk parameter "format". Fungsi ini mengembalikan gambar yang dapat Anda gunakan secara langsung. LoadResData (dijelaskan di bawah) mengembalikan string yang berisi bit aktual dalam file. Kami akan melihat bagaimana menggunakannya setelah kami mendemonstrasikan ikon.
- LoadResString (indeks) untuk string
- LoadResData (indeks, format) untuk apa pun hingga 64 ribu
Seperti disebutkan sebelumnya, fungsi ini mengembalikan string dengan bit aktual di sumber daya. Ini adalah nilai yang dapat digunakan untuk parameter format di sini:
1 Sumber daya kursor
2 sumber daya Bitmap
3 Sumber daya ikon
4 sumber daya menu
5 kotak dialog
6 Sumber daya string
7 Sumber direktori font
8 Sumberdaya font
9 tabel akselerator
10 Sumber daya yang ditentukan pengguna
12 Kursor grup
14 Ikon grup
Karena kita memiliki empat ikon di file sumber daya AboutVB.RES kita, mari kita gunakan LoadResPicture (indeks, format) untuk menetapkan ini ke properti Picture dari CommandButton di VB 6.
Saya membuat aplikasi dengan empat Tombol Option komponen berlabel Bumi, Air, Udara dan Api dan empat peristiwa Klik - satu untuk setiap opsi. Lalu saya menambahkan Tombol perintah dan mengubah properti Style menjadi "1 - Graphical." Ini diperlukan untuk dapat menambahkan ikon khusus ke CommandButton. Kode untuk setiap OptionButton (dan acara Form Form - untuk menginisialisasi) terlihat seperti ini (dengan Id dan Keterangan diubah sesuai untuk acara OptionButton Click lainnya):
Sumber Daya Ubahsuaian
"Masalah besar" dengan sumber daya khusus adalah bahwa Anda biasanya harus menyediakan cara untuk memprosesnya dalam kode program Anda. Sebagai Microsoft menyatakannya, "ini biasanya membutuhkan penggunaan panggilan Windows API." Itu yang akan kita lakukan.
Contoh yang akan kita gunakan adalah cara cepat untuk memuat array dengan serangkaian nilai konstan. Ingat bahwa file sumber daya dimasukkan ke dalam proyek Anda, jadi jika nilai yang Anda perlu memuat ubah, Anda harus menggunakan pendekatan yang lebih tradisional seperti file berurutan yang Anda buka dan Baca. API Windows yang akan kami gunakan adalah CopyMemory API. CopyMemory menyalin blok memori ke blok memori yang berbeda tanpa memperhatikan tipe data yang disimpan di sana. Teknik ini dikenal oleh VB 6'ers sebagai cara yang sangat cepat untuk menyalin data di dalam suatu program.
Program ini sedikit lebih terlibat karena pertama-tama kita harus membuat file sumber daya yang berisi serangkaian nilai panjang. Saya cukup menetapkan nilai ke array:
Dim long (10) As Long
long (1) = 123456
long (2) = 654321
... Dan seterusnya.
Kemudian nilai-nilai tersebut dapat ditulis ke file bernama MyLongs.longs menggunakan pernyataan "Put" VB 6.
Sebaiknya diingat bahwa file sumber tidak berubah kecuali Anda menghapus yang lama dan menambahkan yang baru. Jadi, menggunakan teknik ini, Anda harus memperbarui program untuk mengubah nilai. Untuk memasukkan file MyLongs.longs ke dalam program Anda sebagai sumber daya, tambahkan ke file sumber daya menggunakan langkah-langkah yang sama dijelaskan di atas, tetapi klik Tambahkan Sumber Daya Kustom ... alih-alih Tambahkan Ikon... Kemudian pilih file MyLongs.longs sebagai file untuk ditambahkan. Anda juga harus mengubah "Type" dari sumber daya dengan mengklik kanan sumber daya itu, memilih "Properties", dan mengubah Type menjadi "longs". Perhatikan bahwa ini adalah jenis file dari file MyLongs.longs Anda.
Untuk menggunakan file sumber daya yang Anda buat untuk membuat array baru, pertama mendeklarasikan panggilan Win32 CopyMemory API:
Kemudian baca file sumber:
Selanjutnya, pindahkan data dari array byte ke array nilai panjang. Alokasikan array untuk nilai long menggunakan nilai integer dari panjang string byte dibagi dengan 4 (yaitu, 4 byte per panjang):
Sekarang, ini mungkin tampak seperti banyak masalah ketika Anda bisa menginisialisasi array di acara Form Load, tetapi itu menunjukkan bagaimana menggunakan sumber daya kustom. Jika Anda memiliki seperangkat konstanta besar yang Anda perlukan untuk menginisialisasi array, ia akan berjalan lebih cepat daripada yang lain metode lain yang dapat saya pikirkan dan Anda tidak perlu memiliki file terpisah yang disertakan dengan aplikasi Anda Itu.