Kaip rodyti meniu punkto patarimus „Delphi“ programose

Norėdami programuoti „Delphi“ programas, naudokite specialią kodavimo kalbą, kad būtų rodomas užuomina arba patarimas, kai pelė užveskite pelę virš meniu komponento. Jei „ShowHint“ ypatybė nustatyta kaip „true“, o jūs pridedate tekstą prie „užuominos“ ypatybės, šis pranešimas pasirodys, kai pelė uždedama ant komponento (pavyzdžiui, „TButton“).

Įgalinti meniu elementų patarimus

Dėl „Windows“ projektavimo būdo, net jei užuominos ypatybę nustatysite kaip meniu elementą, iššokantis užuomina nebus rodomas. Tačiau „Windows“ pradžios meniu elementuose pateikiamos užuominos. „Internet Explorer“ parankinių meniu taip pat pateikiamos patarimai apie meniu elementus.

Galima naudoti visuotinio taikymo kintamojo OnHint įvykį Delfi programos, pateikiančios meniu elemento užuominas būsenos juostoje.

„Windows“ neatskleidžia pranešimų, reikalingų palaikyti tradicinį „OnMouseEnter“ įvykį. Tačiau WM_MENUSELECT pranešimas siunčiamas, kai vartotojas pasirenka meniu elementą.

„TCustomForm“ („TForm“ protėvis) „WM_MENUSELECT“ įgyvendinimas nustato meniu punkto užuominą į „Taikymas. Užuomina “, kad jis galėtų būti naudojamas programoje. „OnHint“ įvykis.

instagram viewer

Jei norite pridėti meniu elementų iššokančius patarimus (patarimus) prie savo „Delphi“ programos meniu, sutelkite dėmesį į „WM_MenuSelect“ pranešimą.

„Popup“ patarimai

Kadangi negalite pasikliauti programa. Norėdami parodyti meniu elementų užuominų langą, naudokite ActivateHint metodą (nes meniu visiškai tvarko „Windows“), norėdami parodyti užuominų langą, turite sukurti savo užuominų lango versiją, iš „THintWindow“ išvesdami naują klasę.

Štai kaip sukurti „TMenuItemHint“ klasę. Tai yra našlių užuomina, kuri iš tikrųjų rodoma meniu punktai!

Pirmiausia turite tvarkyti „WM_MENUSELECT“ „Windows“ pranešimą:

tipo
TForm1 = klasė(TForm)
...
privatus
procedūra „WMMenuSelect“ (var Msg: TWMMenuSelect); žinutė WM_MENUSELECT;
galas...
įgyvendinimas
...
procedūra
TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var
menuItem: TMenuItem; „hSubMenu“: HMENU;
prasideda

paveldėtas; // iš TCustomForm (kad ta programa. Užuomina paskirta)
menuItem: = nulis;
jei (Msg. „MenuFlag“ <> $ FFFF) arba (Msg. IDItem <> 0) tada
prasideda
jei Msg. „MenuFlag“ ir MF_POPUP = MF_POPUP tada
prasideda
„hSubMenu“: = „GetSubMenu“ (žinutė. Meniu, žinutė. IDItem);
menuItem: = Savęs. Meniu. „FindItem“ („hSubMenu“, „fkHandle“);
galas
Kitas
prasideda
menuItem: = Savęs. Meniu. „FindItem“ (žinutė. IDItem, fkCommand);
galas;
galas; „MiHint“. „DoActivateHint“ (meniu elementas);
galas
; (* „WMMenuSelect“ *)

Greita informacija: WM_MENUSELECT pranešimas siunčiamas į meniu savininko langą, kai vartotojas pasirenka meniu elementą (bet nespustelėja). Naudodami „TMenu“ klasės „FindItem“ metodą, galite gauti šiuo metu pasirinktą meniu elementą. Funkcijos „FindItem“ parametrai yra susiję su gauto pranešimo ypatybėmis. Kai žinome, kurį meniu elementą uždėjo pelė, vadiname „TMenuItemHint“ metodo „DoActivateHint“ metodu. „MiHint“ kintamasis yra apibrėžtas kaip „var miHint: TMenuItemHint“ ir yra sukurtas formos „OnCreate“ renginių vedėjas.

Dabar liko „TMenuItemHint“ klasės įgyvendinimas.

Čia yra sąsajos dalis:

TMenuItemHint = klasė(„ThintWindow“)
privatus

activeMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
procedūra „HideTime“ (Siuntėjas: „TObject“);
procedūra „ShowTime“ (siuntėjas: „TObject“);
viešai

konstruktorius Kurti („AOwner: TComponent“); nepaisyti;
procedūra „DoActivateHint“ (meniu elementas: „TMenuItem“);
naikintojas Sunaikinti; nepaisyti;
galas
;

Iš esmės „DoActivateHint“ funkcija iškviečia „THintWindow“ „ActivateHint“ metodą, naudodama savybę „TMenuItem's Hint“ (jei ji priskirta). „ShowTimer“ yra naudojamas siekiant užtikrinti, kad programos užuominos pauzė pasibaigtų prieš pateikiant užuominą. „HideTimer“ naudoja programą. „HintHidePause“ - paslėpti užuominų langą po nurodyto intervalo.

Meniu elemento patarimų naudojimas

Nors kai kurie gali sakyti, kad meniu elementų patarimų rodymas nėra geras dizainas, yra situacijų, kai iš tikrųjų meniu elementų patarimų rodymas yra daug geresnis nei būsenos juostos naudojimas. Vienas iš tokių atvejų yra neseniai naudotas (MRU) meniu elementų sąrašas. Dar vienas yra pasirinktinės užduočių juostos meniu.