aprikot
Fitur utama antarmuka Windows adalah tampilan ikon berwarna-warni. Ikon tidak hanya mempercantik desktop Windows, tetapi juga memfasilitasi pengoperasian intuitif, memberikan kenyamanan luar biasa bagi pengguna. Gaya Windows adalah referensi yang baik ketika merancang antarmuka program.
Delphi umumnya menyediakan dua metode untuk mengatur ikon, satu adalah dengan menentukan ikon aplikasi di Opsi Proyek, dan yang lainnya adalah dengan menyediakan atribut Ikon di halaman properti Object Inspector. Jika Anda ingin mendesain menu pop-up seindah menu Start Windows, Anda harus menulis kodenya sendiri.
Kita tahu bahwa sebagian besar aplikasi Windows memiliki ikonnya sendiri. Selama Anda menghapus ikon dari program itu sendiri, menyesuaikan ukuran ikon dan menambahkannya ke menu pop-up, menu yang indah telah selesai.
Pertama, gunakan ExtractAssociatedIcon untuk mendapatkan ikon dari program tertentu. Namun, ukuran ikon bervariasi dan mungkin tidak langsung ditambahkan ke menu. Delphi tidak menyediakan fungsi untuk menyesuaikan ukuran ikon, jadi file ikon harus diubah menjadi file bitmap. Kemudian sesuaikan ukuran file bitmap, dan terakhir ganti item menu dengan file bitmap. Kode sumbernya adalah sebagai berikut:
jenis
TForm1 = kelas(TForm)
Menu Utama1: Menu Utama;
File1: TMenuItem;
/****Item di bilah menu****/
Buka1: TMenuItem;
/****item dalam file menu****/
prosedur FormCreate(Pengirim: TObject);
prosedur FormShow(Pengirim: TObject);
pribadi
{deklarasi parameter lokal}
publik
{deklarasi parameter global}
Ikon, Txt, MnuItm: TBitmap;
akhir;
prosedur TForm2.FormCreate(Pengirim: TObject);
var R: Benar;
HIcn: HIkon;
IC: TIkon;
Indeks: Kata;
Nama File: PChar;
mulai
/**Mendapatkan ikon dari suatu program**/
Ic:=TIcon.Buat;
Ic.Handle:=ExtractAssociatedIcon(Petunjuk, /*nama file dan jalur*/, Indeks);
/** Membuat bitmap**/
Txt:=TBitmap.Buat;
dengan Txt lakukan
mulai
Lebar:=Kanvas.TextWidth('Uji');
Tinggi:=Kanvas.TextHeight('Tes');
Kanvas.TextOut(0,0,' Tes');
akhir;
/**Salin ikon ke bitmap yang dibuat di atas dan sesuaikan ukurannya**/
Icn:=TBitmap.Buat;
dengan Icn lakukan
mulai
Lebar:=32;
Tinggi:=32;
Kuas.Warna:=clBtnWajah;
Kanvas.Gambar(0,0,Ic);
akhir;
/** Membuat file bitmap terakhir**/
MnuItm:=TBitmap.Buat;
dengan MnuItm lakukan
mulai
Lebar:=Txt.Lebar+18;
Tinggi:=18;
dengan Canvas lakukan
mulai
Kuas.Warna:=clBtnWajah;
Pena.Warna:=clBtnWajah;
Kuas.Gaya:=bsSolid;
Persegi Panjang(0,0,Lebar,Tinggi);
Mode Salin:=cmSrcAnd;
StretchDraw(Persegi(0,0,16,16),Icn);
Mode Salin:=cmSrcAnd;
Seri(16,8-(Txt.Tinggi div 2),Txt);
akhir;
akhir;
akhir;
prosedur TForm2.FormShow(Pengirim: TObject);
var
Info Barang: TMenuItemInfo;
hBmp1:Pegangan;
mulai
HBmp1:=MnuItm.Menangani;
dengan ItemInfo lakukan
mulai
cbUkuran:= Ukuran(ItemInfo);
fMask:= MIIM_TYPE;
fJenis:= MFT_BITMAP;
dwTypeData:= PChar(MakeLong( hBmp1, 0 ));
akhir;
/** Ganti item menu Open1 dengan bitmap **/
SetMenuItemInfo( GetSubMenu( MainMenu1.Handle, File1.MenuIndex ),
Open1.MenuIndex, benar, ItemInfo );
akhir;
Program di atas telah di-debug pada lingkungan Windows98 dan Delphi 4.0.