Cara Menampilkan Petunjuk Item Menu di Aplikasi Delphi

click fraud protection

Gunakan bahasa pengkodean khusus untuk memprogram aplikasi Delphi untuk menampilkan petunjuk, atau tooltip, ketika mouse melayang di atas komponen menu. Jika properti "ShowHint" disetel ke "true" dan Anda menambahkan teks ke properti "hint", pesan ini akan ditampilkan ketika mouse diletakkan di atas komponen (misalnya TButton).

Aktifkan Petunjuk untuk Item Menu

Karena cara Windows dirancang, bahkan jika Anda menetapkan nilai untuk properti petunjuk ke item menu, petunjuk sembulan tidak akan ditampilkan. Namun, item menu mulai Windows melakukan petunjuk tampilan. Menu favorit di Internet Explorer juga menampilkan petunjuk item menu.

Dimungkinkan untuk menggunakan event OnHint dari variabel aplikasi global di Delphi aplikasi untuk menampilkan petunjuk item menu di bilah status.

Windows tidak memaparkan pesan yang diperlukan untuk mendukung acara OnMouseEnter tradisional. Namun, pesan WM_MENUSELECT dikirim ketika pengguna memilih item menu.

Implementasi WM_MENUSELECT dari TCustomForm (leluhur TForm) menetapkan petunjuk item menu ke "Aplikasi. Petunjuk "sehingga dapat digunakan dalam Aplikasi. Acara OnHint.

instagram viewer

Jika Anda ingin menambahkan petunjuk popup item menu (tooltips) ke menu aplikasi Delphi Anda, fokuslah pada pesan WM_MenuSelect.

Petunjuk Popup

Karena Anda tidak dapat mengandalkan Aplikasi. Metode ActivateHint untuk menampilkan jendela petunjuk untuk item menu (karena penanganan menu sepenuhnya dilakukan oleh Windows), untuk menampilkan jendela petunjuk Anda harus membuat versi Anda sendiri dari jendela petunjuk dengan menurunkan kelas baru dari "THintWindow."

Inilah cara membuat kelas TMenuItemHint. Ini adalah petunjuk janda yang sebenarnya ditampilkan untuk item menu!

Pertama, Anda perlu menangani pesan Windows WM_MENUSELECT:

Tipe
TForm1 = kelas(TForm)
...
pribadi
prosedur WMMenuSelect (pilihvar Msg: TWMMenuSelect); pesan WM_MENUSELECT;
akhir...
penerapan
...
prosedur
TForm1.WMMenuSelect (pilihvar Msg: TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
mulai

mewarisi; // dari TCustomForm (jadi Aplikasi itu. Petunjuk ditugaskan)
menuItem: = nol;
jika (Msg. MenuFlag <> $ FFFF) atau (Msg. IDItem <> 0) kemudian
mulai
jika Msg. MenuFlag dan MF_POPUP = MF_POPUP kemudian
mulai
hSubMenu: = GetSubMenu (Msg. Menu, Pesan IDItem);
menuItem: = Cukup. Tidak bisa. FindItem (hSubMenu, fkHandle);
akhir
lain
mulai
menuItem: = Cukup. Tidak bisa. FindItem (Msg. IDItem, fkCommand);
akhir;
akhir; miHint. DoActivateHint (menuItem);
akhir
; (* WMMenuPilih *)

Info cepat: pesan WM_MENUSELECT dikirim ke jendela pemilik menu ketika pengguna memilih (tetapi tidak mengklik) item menu. Menggunakan metode FindItem dari kelas TMenu, Anda bisa mendapatkan item menu yang saat ini dipilih. Parameter fungsi FindItem berhubungan dengan properti pesan yang diterima. Setelah kita tahu item menu apa yang mouse tersebut sudah lewat, kita memanggil metode DoActivateHint dari kelas TMenuItemHint. Variabel miHint didefinisikan sebagai "var miHint: TMenuItemHint" dan dibuat di Formulir OnCreate pengendali acara.

Sekarang, yang tersisa adalah implementasi kelas TMenuItemHint.

Inilah bagian antarmuka:

TMenuItemHint = kelas(Jendela)
pribadi

activeMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
prosedur HideTime (Pengirim: TObject);
prosedur ShowTime (Pengirim: TObject);
publik

konstruktor Buat (AOwner: TComponent); mengesampingkan;
prosedur DoActivateHint (menuItem: TMenuItem);
destruktor Menghancurkan; mengesampingkan;
akhir
;

Pada dasarnya, fungsi DoActivateHint memanggil metode ActivateHint dari WindowsWind menggunakan properti Petunjuk TMenuItem (jika ditugaskan). ShowTimer digunakan untuk memastikan bahwa Petunjuk Jeda Aplikasi berlalu sebelum petunjuk ditampilkan. The hideTimer menggunakan Aplikasi. HintHidePause untuk menyembunyikan jendela petunjuk setelah interval yang ditentukan.

Menggunakan Petunjuk Item Menu

Sementara beberapa orang mungkin mengatakan bahwa itu bukan desain yang baik untuk menampilkan petunjuk untuk item menu, ada situasi di mana sebenarnya menampilkan petunjuk item menu jauh lebih baik daripada menggunakan status bar. Daftar item menu yang paling terakhir digunakan (MRU) adalah salah satunya. Menu taskbar khusus adalah pilihan lain.

instagram story viewer