Kuinka näyttää valikkokohtavihjeitä Delphi-sovelluksissa

click fraud protection

Käytä tiettyä koodauskieltä ohjelmoimaan Delphi-sovellukset vihjeen tai työkaluvihjeen näyttämiseksi, kun hiiri siirtyy hiiren osoittimen valikkokomponentin päälle. Jos "ShowHint" -ominaisuuden arvo on "true" ja lisäät tekstiä "vihje" -ominaisuuteen, tämä viesti tulee näkyviin, kun hiiri asetetaan komponentin päälle (esimerkiksi TButton).

Ota vihjeitä valikkokohteille

Windowsin suunnittelutavan takia, vaikka asettaisit vihjeominaisuuden arvon valikkokohteeksi, ponnahdusikkunaa ei tule näkyviin. Windowsin Käynnistä-valikon kohteissa on kuitenkin näyttövihjeitä. Internet Explorerin suosikkivalikossa näkyvät myös valikkokohta Vihjeet.

Voit käyttää globaalin sovellusmuuttujan OnHint-tapahtumaa Delfoi sovellukset, jotka näyttävät valikkokohtavihjeet tilarivillä.

Windows ei paljasta perinteisen OnMouseEnter-tapahtuman tukemiseen tarvittavia viestejä. WM_MENUSELECT-viesti kuitenkin lähetetään, kun käyttäjä valitsee valikkokohteen.

TCustomFormin (TFormin esi-isä) WM_MENUSELECT-toteutus asettaa valikkokohtavihjeeksi "Sovellus. Vihje ", jotta sitä voidaan käyttää sovelluksessa. OnHint-tapahtuma.

instagram viewer

Jos haluat lisätä valikkokohtien ponnahdusvinkkejä (työkaluvihjeitä) Delphi-sovellusvalikoihin, keskity WM_MenuSelect-viestiin.

Popup Vinkkejä

Koska et voi luottaa sovellukseen. ActivateHint - menetelmä näyttää valikkokohtien vihjeikkunan (koska valikon käsittely on täysin suoritettu Windows), saadaksesi vihjeikkunan näyttöön, sinun on luotava oma versio vihjeikkunasta johtamalla uusi luokka "THintWindow".

Näin luodaan TMenuItemHint-luokka. Tämä on vihje leski, joka todella näytetään valikkokohteet!

Ensin on käsiteltävä WM_MENUSELECT Windows-viesti:

tyyppi
TForm1 = luokka(TForm)
...
yksityinen
menettely WMMenuSelect (var Msg: TWMMenuSelect); viesti WM_MENUSELECT;
pää...
toteutus
...
menettely
TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
alkaa

peritty; // TCustomFormista (niin, että sovellus. Vihje on annettu)
menuItem: = nolla;
jos (Msg. MenuFlag <> $ FFFF) tai (Msg. IDItem <> 0) sitten
alkaa
jos Msg. MenuFlag ja MF_POPUP = MF_POPUP sitten
alkaa
hSubMenu: = GetSubMenu (viesti. Valikko, viesti. IDItem);
menuItem: = Itse. Valikko. FindItem (hSubMenu, fkHandle);
pää
muu
alkaa
menuItem: = Itse. Valikko. FindItem (viesti. IDItem, fkCommand);
pää;
pää; miHint. DoActivateHint (menuItem);
pää
; (* WMMenuSelect *)

Pikainfo: WM_MENUSELECT-viesti lähetetään valikon omistajaikkunaan, kun käyttäjä valitsee (mutta ei napsauta) valikkokohta. TMenu-luokan FindItem-menetelmällä voit saada valitun valikkokohteen. FindItem-toiminnon parametrit liittyvät vastaanotetun viestin ominaisuuksiin. Kun tiedämme, minkä valikkokohteen hiiri on ohi, kutsumme TMenuItemHint-luokan DoActivateHint-menetelmää. MiHint-muuttuja on määritelty nimellä "var miHint: TMenuItemHint" ja se luodaan lomakkeen onCreate tapahtumakäsittelijä.

Nyt jäljellä on TMenuItemHint-luokan toteutus.

Tässä on käyttöliittymäosa:

TMenuItemHint = luokka(THintWindow)
yksityinen

activeMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
menettely HideTime (Lähettäjä: TObject);
menettely ShowTime (Lähettäjä: TObject);
julkinen

rakentaja Luo (AOwner: TComponent); ohittaa;
menettely DoActivateHint (menuItem: TMenuItem);
destructor Tuhota; ohittaa;
pää
;

Periaatteessa DoActivateHint-toiminto kutsuu THintWindow-ohjelman ActivateHint-menetelmää käyttämällä TMenuItem's Hint -ominaisuutta (jos se on määritetty). ShowTimer-ohjelmalla varmistetaan, että sovelluksen HintPause-aika loppuu ennen kuin vihje tulee näkyviin. HideTimer käyttää sovellusta. HintHidePause piilottaa vihjeikkunan tietyn ajan kuluttua.

Valikkokohta Vihjeiden käyttö

Vaikka jotkut saattavat sanoa, että vinkkien näyttäminen valikkokohdille ei ole hyvä suunnittelu, on tilanteita, joissa valikkokohtien vinkkien näyttäminen on paljon parempi kuin tilarivin käyttö. Viimeksi käytetty (MRU) valikkokohtaluettelo on yksi tällainen tapaus. Mukautettu tehtäväpalkki-valikko on toinen.

instagram story viewer