Použijte specifický kódovací jazyk k programování aplikací Delphi tak, aby zobrazovaly nápovědu nebo popisek, když se myš pohybuje nad komponentou nabídky. Pokud je vlastnost "ShowHint" nastavena na "true" a do vlastnosti "hint" přidáte text, zobrazí se tato zpráva, když je myš umístěna nad komponentou (například TButton).
Povolit rady pro položky nabídky
Z důvodu způsobu, jakým je Windows navržen, i když nastavíte hodnotu vlastnosti hint na položku nabídky, nápověda se nezobrazí. Položky nabídky Start systému Windows však zobrazují rady. Nabídka oblíbených položek v aplikaci Internet Explorer také zobrazuje rady k položkám nabídky.
Je možné použít událost OnHint globální aplikační proměnné v systému Windows Delphi aplikace pro zobrazení tipů na položky nabídky ve stavovém řádku.
Systém Windows nevystavuje zprávy potřebné k podpoře tradiční události OnMouseEnter. Zpráva WM_MENUSELECT se však odešle, když uživatel vybere položku nabídky.
Implementace WM_MENUSELECT TCustomForm (předchůdce TForm) nastaví nápovědu položky nabídky na „Aplikace. Tip “, takže jej lze použít v aplikaci. Událost OnHint.
Pokud chcete do nabídek aplikace Delphi přidat vyskakovací tipy pro položky nabídky (popisky), zaměřte se na zprávu WM_MenuSelect.
Popup Tipy
Protože se nemůžete spolehnout na aplikaci. Metoda ActivateHint zobrazí okno nápovědy pro položky nabídky (protože manipulace s nabídkou je zcela prováděna pomocí Okna), chcete-li zobrazit okno nápovědy, musíte si vytvořit vlastní verzi okna nápovědy odvozením nové třídy z "THintWindow."
Zde je návod, jak vytvořit třídu TMenuItemHint. Toto je nápověda vdova, která se skutečně zobrazí položky nabídky!
Nejprve je třeba zpracovat zprávu WM_MENUSELECT Windows:
typ
TForm1 = třída(TForm)
...
soukromé
postup WMMenuSelect (var Msg: TWMMenuSelect); zpráva WM_MENUSELECT;
konec...
implementace...
postup TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var menuItem: TMenuItem; hSubMenu: HMENU;
začít
zdědil; // od TCustomForm (takže tato aplikace. Nápověda je přiřazena)
menuItem: = nula;
-li (Msg. MenuFlag <> $ FFFF) nebo (Msg. IDItem <> 0) pak
začít
-li Msg. MenuFlag a MF_POPUP = MF_POPUP pak
začít
hSubMenu: = GetSubMenu (Msg. Menu, Msg. IDItem);
menuItem: = Self. Jídelní lístek. FindItem (hSubMenu, fkHandle);
konec
jiný
začít
menuItem: = Self. Jídelní lístek. FindItem (Msg. IDItem, fkCommand);
konec;
konec; miHint. DoActivateHint (menuItem);
konec; (* WMMenuSelect *)
Rychlé informace: zpráva WM_MENUSELECT je odeslána do okna vlastníka nabídky, když uživatel vybere (ale neklikne) položku nabídky. Pomocí metody FindItem třídy TMenu získáte aktuálně vybranou položku nabídky. Parametry funkce FindItem se vztahují k vlastnostem přijaté zprávy. Jakmile víme, o jakou položku v nabídce je myš, voláme metodu DoActivateHint třídy TMenuItemHint. Proměnná miHint je definována jako "var miHint: TMenuItemHint" a je vytvořena ve formuláři OnCreate obsluha události.
Nyní zbývá implementace třídy TMenuItemHint.
Zde je část rozhraní:
TMenuItemHint = třída(THintWindow)
soukromé
activeMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
postup HideTime (odesílatel: TObject);
postup ShowTime (odesílatel: TObject);
veřejnost
konstruktér Vytvořit (AOwner: TComponent); přepsat;
postup DoActivateHint (menuItem: TMenuItem);
destruktor Zničit; přepsat;
konec;
Funkce DoActivateHint v zásadě volá metodu ActivateHint THintWindow pomocí vlastnosti Tip TMenuItem (pokud je přiřazena). ShowTimer se používá k zajištění, že HintPause aplikace uplyne před zobrazením nápovědy. HideTimer používá aplikaci. HintHidePause pro skrytí okna nápovědy po zadaném intervalu.
Použití tipů na položky nabídky
Zatímco někteří by mohli říci, že není dobré zobrazovat rady pro položky nabídky, existují situace, kdy je skutečné zobrazování tipů nabídky mnohem lepší než použití stavového řádku. Jedním z takových případů je naposledy použitý seznam položek nabídky (MRU). Vlastní nabídka na hlavním panelu je další.