Život

Ako zobraziť tipy pre položky ponuky v aplikáciách Delphi

Ako zobraziť tipy pre položky ponuky v aplikáciách 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.

Použite špecifický kódovací jazyk na programovanie aplikácií Delphi tak, aby zobrazovali náznak alebo popis, keď sa myš vznáša nad komponentom ponuky. Ak je vlastnosť "ShowHint" nastavená na "true" a do vlastnosti "hint" pridáte text, táto správa sa zobrazí, keď je myš umiestnená nad komponentom (napríklad TButton).

Povoliť rady pre položky ponuky

Z dôvodu spôsobu, akým je navrhnutý systém Windows, aj keď nastavíte hodnotu vlastnosti tip na položku ponuky, pomocník sa nezobrazí. Položky ponuky Štart systému Windows však zobrazujú rady. Ponuka obľúbených položiek v programe Internet Explorer tiež zobrazuje rady k položkám ponúk.

Je možné použiť udalosť OnHint globálnej aplikačnej premennej v aplikáciách Delphi na zobrazenie tipov na položky ponuky v stavovom riadku.

Systém Windows nevystavuje správy potrebné na podporu tradičnej udalosti OnMouseEnter. Správa WM_MENUSELECT sa však odošle, keď používateľ vyberie položku ponuky.

Implementácia WM_MENUSELECT TCustomForm (predchodca TForm) nastaví náznak položky ponuky na "Application.Hint", takže sa dá použiť v udalosti Application.OnHint.

Ak chcete do ponúk aplikácie Delphi pridať kontextové tipy pre položky ponuky (popisy), zamerajte sa na správu WM_MenuSelect.

Kontextové rady

Pretože sa nemôžete spoliehať na metódu Application.ActivateHint na zobrazenie okna nápovedy pre položky ponuky (keďže práca s ponukou sa úplne vykonáva pomocou systému Windows), na zobrazenie okna nápovedy musíte vytvoriť vlastnú verziu okna nápovedy odvodením novej triedy z okna „THintWindow“.

Tu je návod, ako vytvoriť triedu TMenuItemHint. Toto je nápoveda vdovy, ktorá sa skutočne zobrazí pre položky ponuky!

Najprv musíte spracovať správu WM_MENUSELECT Windows:

typ
TForm1 = trieda(TForm)

súkromné
procedúra WMMenuSelect (var Msg: TWMMenuSelect); správa WM_MENUSELECT;
koniec
uskutočnenie

procedúra
TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
začať

zdedený; // od TCustomForm (aby bola priradená Application.Hint)
menuItem: = nula;
ak (Msg.MenuFlag $ FFFF) alebo (Msg.IDItem 0) potom
začať
ak Msg.MenuFlag a MF_POPUP = MF_POPUP potom
začať
hSubMenu: = GetSubMenu (Msg.Menu, Msg.IDItem);
menuItem: = Self.Menu.FindItem (hSubMenu, fkHandle);
koniec
inak
začať
menuItem: = Self.Menu.FindItem (Msg.IDItem, fkCommand);
koniec;
koniec; miHint.DoActivateHint (menuItem);
koniec
; (* WMMenuSelect *)

Rýchla informácia: správa WM_MENUSELECT sa odošle do okna vlastníka ponuky, keď používateľ vyberie (ale neklikne) položku ponuky. Použitím metódy FindItem triedy TMenu môžete získať aktuálne vybranú položku ponuky. Parametre funkcie FindItem sa týkajú vlastností prijatej správy. Akonáhle vieme, o ktorú položku myši ide, zavoláme metódu DoActivateHint triedy TMenuItemHint. Premenná miHint je definovaná ako "var miHint: TMenuItemHint" a je vytvorená v obsluhe udalostí OnCreate formulára.

Teraz zostáva implementácia triedy TMenuItemHint.

Tu je časť rozhrania:

TMenuItemHint = trieda(THintWindow)
súkromné

activeMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
procedúra HideTime (odosielateľ: TObject);
procedúra ShowTime (odosielateľ: TObject);
verejnosť

staviteľ Vytvoriť (AOwner: TComponent); potlačenie;
procedúra DoActivateHint (menuItem: TMenuItem);
ničiteľ zničiť; potlačenie;
koniec
;

V podstate funkcia DoActivateHint volá metódu ActivateHint okna THintWindow pomocou vlastnosti Tip TMenuItem (ak je priradená). ShowTimer sa používa na zabezpečenie toho, aby HintPause aplikácie uplynula pred zobrazením nápovedy. HideTimer používa Application.HintHidePause na skrytie okna nápovedy po zadanom intervale.

Používanie tipov na položky ponuky

Aj keď niektorí môžu povedať, že nie je dobré zobrazovať rady pre položky ponuky, existujú situácie, keď je skutočne zobrazenie tipov pre položky ponuky oveľa lepšie ako použitie stavovej lišty. Jedným z takýchto prípadov je zoznam naposledy použitých položiek ponuky MRU. Ďalšia ponuka na paneli úloh je iná.



Komentáre:

  1. Townsend

    Ak je to tak dobré!

  2. Vruyk

    Túto frázu som odstránil



Napíšte správu