Hidup

Bagaimana untuk Memaparkan Petunjuk Item Menu dalam Aplikasi Delphi

Bagaimana untuk Memaparkan Petunjuk Item Menu dalam Aplikasi Delphi


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Gunakan bahasa pengekodan khusus untuk memprogram aplikasi Delphi untuk memaparkan petunjuk, atau petua alat, apabila tetikus memaparkan komponen menu. Jika harta "ShowHint" ditetapkan kepada "benar" dan anda menambah teks kepada "petunjuk", mesej ini akan dipaparkan apabila tetikus diletakkan di atas komponen (contohnya TButton).

Dayakan Petua untuk Item Menu

Kerana cara Windows direkabentuk, walaupun anda menetapkan nilai untuk property petunjuk ke item menu, petunjuk popup tidak akan dipaparkan. Walau bagaimanapun, item menu permulaan Windows memaparkan petunjuk. Menu kegemaran di Internet Explorer juga memaparkan butiran item menu.

Adalah mungkin untuk menggunakan peristiwa OnHint pemboleh ubah aplikasi global dalam aplikasi Delphi untuk memaparkan petunjuk menu item dalam bar status.

Windows tidak mendedahkan mesej yang diperlukan untuk menyokong acara OnMouseEnter tradisional. Walau bagaimanapun, mesej WM_MENUSELECT akan dihantar apabila pengguna memilih item menu.

Pelaksanaan WM_MENUSELECT dari TCustomForm (nenek moyang TForm) menetapkan petunjuk menu item kepada "Application.Hint" supaya dapat digunakan dalam acara Application.OnHint.

Jika anda ingin menambah petunjuk popup item menu (petua) ke menu aplikasi Delphi, tumpukan pada mesej WM_MenuSelect.

Petua Popup

Oleh kerana anda tidak boleh bergantung pada kaedah Application.ActivateHint untuk memaparkan tetingkap petunjuk untuk item menu (sebagai penanganan menu dilakukan sepenuhnya oleh Windows), untuk mendapatkan tetingkap petunjuk dipaparkan, anda mesti membuat versi sendiri tetingkap petunjuk dengan memperoleh kelas baru dari "THintWindow."

Inilah cara membuat kelas TMenuItemHint. Ini adalah balu panda yang sebenarnya dipaparkan untuk item menu!

Pertama, anda perlu mengendalikan mesej Windows WM_MENUSELECT:

jenis
TForm1 = kelas(TForm)

peribadi
prosedur WMMenuSelect (var Msg: TWMMenuSelect); mesej WM_MENUSELECT;
akhir
pelaksanaannya

prosedur
TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
mulakan

diwarisi; // dari TCustomForm (supaya Application.int diberikan)
menuItem: = Tiada;
jika (Msg.MenuFlag $ FFFF) atau (Msg.IDItem 0) kemudian
mulakan
jika Msg.MenuFlag dan MF_POPUP = MF_POPUP kemudian
mulakan
hSubMenu: = GetSubMenu (Msg.Menu, Msg.IDItem);
menuItem: = Self.Menu.FindItem (hSubMenu, fkHandle);
akhir
lain
mulakan
menuItem: = Self.Menu.FindItem (Msg.IDItem, fkCommand);
akhir;
akhir; miHint.DoActivateHint (menuItem);
akhir
; (* WMMenuSelect *)

Maklumat pantas: mesej WM_MENUSELECT dihantar ke tetingkap pemilik menu apabila pengguna memilih (tetapi tidak mengklik) item menu. Menggunakan kaedah FindItem kelas TMenu, anda boleh mendapatkan item menu yang dipilih saat ini. Parameter fungsi FindItem berkaitan dengan sifat mesej yang diterima. Sebaik sahaja kita tahu apa item menu tetikus selesai, kita panggil kaedah DoActivateHint kelas TMenuItemHint. Pembolehubah miHint ditakrifkan sebagai "var miHint: TMenuItemHint" dan dicipta dalam pengendali acara OnCreate Borang.

Sekarang, apa yang tersisa adalah pelaksanaan kelas TMenuItemHint.

Berikut bahagian antara muka:

TMenuItemHint = kelas(THintWindow)
peribadi

aktifMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
prosedur HideTime (Pengirim: TObject);
prosedur ShowTime (Pengirim: TObject);
awam

pembina Buat (AOwner: TComponent); menimpa;
prosedur DoActivateHint (menuItem: TMenuItem);
pemusnah Musnahkan; menimpa;
akhir
;

Pada asasnya, fungsi DoActivateHint memanggil kaedah ActivateHint dari THintWindow menggunakan sifat Petunjuk TMenuItem (jika diberikan). ShowTimer digunakan untuk memastikan bahawa Petua Petunjuk Aplikasi dilangkau sebelum petunjuk dipaparkan. HideTimer menggunakan Application.HintHidePause untuk menyembunyikan tetingkap petunjuk selepas selang waktu tertentu.

Menggunakan Petua Item Menu

Walaupun sesetengah mungkin mengatakan bahawa ia bukan reka bentuk yang baik untuk memaparkan petunjuk untuk item menu, terdapat situasi di mana sebenarnya memaparkan butiran menu item jauh lebih baik daripada menggunakan bar status. Senarai item menu yang paling baru digunakan (MRU) adalah satu kes seperti itu. Menu bar tugas tersuai adalah yang lain.


Tonton video itu: Tutorial Penggunaan TLabel, TButton, TEdit, TListBox, TComboBox C++ (Julai 2022).


Komen:

  1. Cambeul

    The idea is amazing, I support it.

  2. Bertin

    like a pancake tin, such will wear out to death

  3. Willaburh

    Saya mohon maaf kerana saya mengganggu anda, tetapi saya bercadang untuk pergi melalui laluan lain.

  4. Carey

    Bercakap tentang merit

  5. Kazishakar

    Satu perkara yang sangat berguna, terima kasih!!

  6. Elias

    Tidak sesuai))))))

  7. Mahieu

    Adakah analog wujud?

  8. O'

    Saya fikir ini adalah frasa yang luar biasa



Tulis mesej