Kasutage konkreetset kodeerimiskeelt, et programmeerida Delphi-rakendusi vihje või tööriistavihje kuvamiseks, kui hiir hõlbustab menüükomponenti. Kui atribuudi "ShowHint" väärtuseks on seatud "true" ja kui lisate atribuuti "vihje" teksti, kuvatakse see teade, kui hiir asetatakse komponendi kohale (näiteks TButton).
Luba menüüüksuste näpunäited
Windowsi konstrueerimisviisi tõttu, isegi kui määrate vihje atribuudi väärtuseks menüüelemendi, ei kuvata hüpik Vihjet. Windowsi menüü Start üksused kuvavad siiski vihjeid. Internet Exploreri lemmikute menüüs kuvatakse ka menüüelementide näpunäited.
Veebis saab kasutada globaalse rakenduse muutuja OnHint sündmust Delphi rakendused menüüelementide näitamiseks olekuribal.
Windows ei paljasta sõnumeid, mida on vaja traditsioonilise OnMouseEnteri sündmuse toetamiseks. Kui kasutaja valib menüüelemendi, saadetakse WM_MENUSELECT teade.
TCustomFormi (TFormi esivanem) WM_MENUSELECT teostus seab menüüpunkti vihje väärtuseks "Rakendus. Vihje ", nii et seda saab rakenduses kasutada. OnHinti sündmus.
Kui soovite oma Delphi rakenduse menüüdesse lisada menüüüksuse hüpiknippe (tööriistavihjeid), keskenduge WM_MenuSelect sõnumile.
Hüpikakende vihjed
Kuna te ei saa rakendusele tugineda. Menüüelementide vihjeakna kuvamiseks aktiveerige meetod ActivateHint (kuna menüühaldus on täielikult tehtud Windows), et vihjeakna kuvamiseks peate looma oma vihjeakna versiooni, tuues "THintWindow" -st uue klassi.
Siit saate teada, kuidas luua TMenuItemHint klass. See on vihje lesk, keda tegelikult kuvatakse menüü üksused!
Esiteks peate käsitlema WM_MENUSELECT Windowsi sõnumit:
tüüp
TForm1 = klass(TForm)
...
privaatne
protseduur WMMenuSelect (var Msg: TWMMenuSelect); sõnum WM_MENUSELECT;
lõpp...
rakendamine...
protseduur TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var menuItem: TMenuItem; hSubMenu: HMENU;
alustada
päritud; // TCustomFormist (nii et rakendus. Vihje on määratud)
menuItem: = null;
kui (Msg. MenuFlag <> $ FFFF) või (Msg. IDItem <> 0) siis
alustada
kui Msg. MenuFlag ja MF_POPUP = MF_POPUP siis
alustada
hSubMenu: = GetSubMenu (sõnum. Menüü, sõnum. IDItem);
menuItem: = Ise. Menüü. FindItem (hSubMenu, fkHandle);
lõpp
muud
alustada
menuItem: = Ise. Menüü. FindItem (sõnum. IDItem, fkCommand);
lõpp;
lõpp; miHint. DoActivateHint (menuItem);
lõpp; (* WMMenuSelect *)
Kiire teave: WM_MENUSELECT teade saadetakse menüü omanikuaknasse, kui kasutaja valib menüüelemendi (kuid ei klõpsa sellel). TMenu klassi FindItem meetodit kasutades saate praegu valitud menüüelemendi. Funktsiooni FindItem parameetrid on seotud saadud teate omadustega. Kui oleme teada, millises menüüelemendis hiir üle on, kutsume seda TMenuItemHint-meetodiks DoActivateHint. Muutuja miHint on määratletud kui "var miHint: TMenuItemHint" ja see luuakse vormi OnCreate sündmuste käitleja.
Nüüd on jäänud alles TMenuItemHint klassi rakendamine.
Siin on liidese osa:
TMenuItemHint = klass(THintWindow)
privaatne
aktiivne menüü: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
protseduur HideTime (saatja: TObject);
protseduur ShowTime (saatja: TObject);
avalik
ehitaja Loo (Omanik: TComponent); alistada;
protseduur DoActivateHint (menuItem: TMenuItem);
hävitaja Hävitada; alistada;
lõpp;
Põhimõtteliselt kutsub funktsioon DoActivateHint funktsiooni TMenuItem Hint (kui see on määratud) abil THintWindow aktiveerima ActivateHint meetodi. ShowTimerit kasutatakse tagamaks, et enne vihje kuvamist rakenduse vihjepaus aegub. HideTimer kasutab rakendust. HintHidePause vihjeakna peitmiseks määratud intervalli järel.
Menüüpunkti vihjete kasutamine
Ehkki mõned võivad öelda, et menüüelementide vihjete kuvamine ei ole hea kujundus, on siiski olukordi, kus menüüelementide vihjete kuvamine on palju parem kui olekuribal kasutamine. Üks selliseid juhtumeid on viimati kasutatud (MRU) menüü üksuste loend. Kohandatud tegumiriba menüü on veel üks.