Dari bitmap ke ikon ke kursor ke tabel string, setiap program Windows menggunakan sumber daya. Sumber daya adalah elemen-elemen dari suatu program yang mendukung program tetapi bukan kode yang dapat dieksekusi. Pada artikel ini, kita akan membahas beberapa contoh penggunaan bitmap, ikon, dan kursor dari sumber daya.
Lokasi Sumber Daya
Menempatkan sumber daya dalam file .exe memiliki dua utama keuntungan:
- Sumber daya dapat diakses lebih cepat karena membutuhkan waktu lebih sedikit untuk menemukan sumber daya dalam file yang dapat dieksekusi daripada untuk memuatnya dari file disk.
- File program dan sumber daya dapat dimuat dalam satu unit (file .exe) tanpa perlu banyak file pendukung.
Editor Gambar
Pertama-tama, kita perlu membuat file sumber daya. Ekstensi default untuk file sumber adalah.RES. File sumber daya dapat dibuat dengan Editor Gambar Delphi.
Anda dapat memberi nama file sumber daya apa pun yang Anda inginkan, asalkan memiliki ekstensi ".RES" dan nama file tanpa ekstensi tidak sama dengan unit atau nama file proyek apa pun. Ini penting, karena, secara default, masing-masing
Proyek delphi yang mengkompilasi ke dalam aplikasi memiliki file sumber daya dengan nama yang sama dengan file proyek, tetapi dengan ekstensi ".RES". Cara terbaik untuk menyimpan file ke direktori yang sama dengan file proyek Anda.Termasuk Sumberdaya dalam Aplikasi
Untuk mengakses file sumber kami sendiri, kami harus memberi tahu Delphi untuk menautkan file sumber kami dengan aplikasi kami. Ini dilakukan dengan menambahkan arahan kompiler ke kode sumber. Arahan ini perlu segera mengikuti arahan bentuk, seperti berikut:
{$ R * .DFM}
{$ R DPABOUT.RES}
Jangan secara tidak sengaja menghapus bagian {$ R * .DFM}, karena ini adalah baris kode yang memberitahu Delphi untuk menautkan di bagian visual formulir. Ketika Anda memilih bitmap untuk tombol kecepatan, komponen gambar atau komponen tombol, Delphi menyertakan file bitmap yang Anda pilih sebagai bagian dari sumber daya formulir. Delphi mengisolasi elemen antarmuka pengguna Anda ke dalam file .DFM.
Untuk benar-benar menggunakan sumber daya, Anda harus membuatnya API Windows panggilan. Bitmap, kursor, dan ikon yang disimpan dalam file RES dapat diambil dengan menggunakan fungsi API LoadBitmap, LoadCursor, dan LoadIcon masing-masing.
Gambar dalam Sumber Daya
Contoh pertama menunjukkan bagaimana memuat bitmap yang disimpan sebagai sumber daya dan menampilkannya dalam a TImage komponen.
prosedur TfrMain.btnCanvasPic (Pengirim: TObject);
var bBitmap: TBitmap;
mulai
bBitmap: = TBitmap. Membuat;
mencoba
bBitmap. Menangani: = LoadBitmap (hInstance, 'ATHENA');
Image1.Width: = bBitmap. Lebar;
Image1.Height: = bBitmap. Tinggi;
Image1.Canvas. Draw (0,0, bBitmap);
akhirnya
bBitmap. Gratis;
akhir;
akhir;
Catatan: Jika bitmap yang akan dimuat tidak ada dalam file resource, program akan tetap berjalan, itu hanya tidak akan menampilkan bitmap. Situasi ini dapat dihindari dengan pengujian untuk melihat apakah bBitmap. Menangani adalah nol setelah panggilan ke LoadBitmap () dan mengambil langkah-langkah yang sesuai. Itu coba / akhirnya bagian dalam kode sebelumnya tidak menyelesaikan masalah ini, itu hanya di sini untuk memastikan bahwa bBitmap dihancurkan dan memori yang terkait dibebaskan.
Cara lain yang dapat kita gunakan untuk menampilkan bitmap dari sumber daya adalah sebagai berikut:
prosedur TfrMain.btnLoadPicClick (Pengirim: TObject);
mulai
Gambar1.Gambar. Bitmap.
LoadFromResourceName (hInstance, 'EARTH');
akhir;
Kursor dalam Sumber Daya
Layar. Kursor [] adalah Himpunan kursor dipasok oleh Delphi. Dengan menggunakan file sumber daya, kita dapat menambahkan kursor khusus ke properti kursor. Kecuali jika kami ingin mengganti default, strategi terbaik adalah menggunakan angka kursor mulai dari 1.
prosedur TfrMain.btnUseCursorClick (Pengirim: TObject);
const Kursor Baru = 1;
mulai
Layar. Kursor [Kursor Baru]: =
LoadCursor (hInstance, 'CURHAND');
Image1.Cursor: = NewCursor;
akhir;
Ikon Sumber Daya
Jika kita melihat Delphi Pilihan Proyek-Aplikasi pengaturan, kita dapat menemukan bahwa Delphi memasok ikon default untuk suatu proyek. Ikon ini mewakili aplikasi di Windows Explorer dan ketika aplikasi diminimalkan. Kita dapat dengan mudah mengubah ini dengan mengklik tombol 'Muat Ikon'.
Jika kita ingin, misalnya, untuk menghidupkan ikon program ketika program diminimalkan, maka kode berikut akan melakukan pekerjaan.
Untuk animasi, kita perlu a TTimer komponen pada formulir. Kode memuat dua ikon dari file sumber daya ke dalam array TIcon benda; array ini perlu dideklarasikan di bagian publik dari form utama. Kita juga perlu NrIco, itu adalah tipe Integer variabel, dinyatakan dalam publik bagian. Itu NrIco digunakan untuk melacak ikon berikutnya yang akan ditampilkan.
publik
nrIco: Integer;
MinIcon: array [0..1] TIcon;
...
prosedur TfrMain. FormCreate (Pengirim: TObject);
mulai
MinIcon [0]: = TIcon. Membuat;
MinIcon [1]: = TIcon. Membuat;
MinIcon [0] .Handle: = LoadIcon (hInstance, 'ICOOK');
MinIcon [1] .Handle: = LoadIcon (hInstance, 'ICOFOLD');
NrIco: = 0;
Timer1.Interval: = 200;
akhir;
...
prosedur TfrMain. Timer1Timer (Pengirim: TObject);
mulai jika IsIconic (Aplikasi. Menangani) kemudianmulai
NrIco: = (NrIco + 1) mod 2;
Aplikasi. Ikon: = MinIcon [NrIco];
akhir;
akhir;
...
prosedur TfrMain. FormDestroy (Pengirim: TObject);
mulai
MinIcon [0] .Gratis;
MinIcon [1]. Gratis;
akhir;
Dalam Timer1.OnTimer pengendali acara, Diminimalkan fungsi digunakan untuk melihat apakah kita perlu menghidupkan ikon utama kita atau tidak. Cara yang lebih baik untuk mencapai ini adalah dengan menangkap tombol maksimalkan / diminimalkan dan daripada bertindak.
Kata-kata terakhir
Kami dapat menempatkan apa pun (well, bukan segalanya) dalam file sumber daya. Artikel ini telah menunjukkan kepada Anda bagaimana menggunakan sumber daya untuk menggunakan / menampilkan bitmap, kursor atau ikon dalam aplikasi Delphi Anda.
Catatan: Ketika kita menyimpan proyek Delphi ke disk, Delphi secara otomatis membuat satu file .RES yang memiliki nama yang sama dengan proyek (jika tidak ada yang lain, ikon utama proyek ada di dalam). Meskipun kami dapat mengubah file sumber daya ini, ini tidak disarankan.