Elämä

Kuinka näyttää valikkokohtavihjeitä Delphi-sovelluksissa

Kuinka näyttää valikkokohtavihjeitä Delphi-sovelluksissa


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.

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 arvoksi on asetettu "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.

Delphi-sovelluksissa on mahdollista käyttää globaalin sovellusmuuttujan OnHint-tapahtumaa näyttääksesi valikkokohtavihjeitä 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 edeltäjä) WM_MENUSELECT-toteutus asettaa valikkokohtavihjeeksi "Application.Hint", jotta sitä voidaan käyttää Application.OnHint -tapahtumassa.

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

Popup Vinkkejä

Koska et voi luottaa sovellukseen.ActivateHint-menetelmä näyttää valikkokohtien vihjeikkuna (koska valikon käsittely on täysin Windowsin tehtävä), 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 valikkokohdissa!

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

tyyppi
TForm1 = luokka(TForm)

yksityinen
menettely WMMenuSelect (var Msg: TWMMenuSelect); viesti WM_MENUSELECT;
pää
täytäntöönpano

menettely
TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
alkaa

peritty; // TCustomFormista (siten, että Application.Hint on määritetty)
menuItem: = nolla;
jos (Msg.MenuFlag $ FFFF) tai (Msg.IDItem 0) sitten
alkaa
jos Msg.MenuFlag ja MF_POPUP = MF_POPUP sitten
alkaa
hSubMenu: = GetSubMenu (Msg.Menu, Msg.IDItem);
menuItem: = Self.Menu.FindItem (hSubMenu, fkHandle);
pää
muu
alkaa
menuItem: = Self.Menu.FindItem (Msg.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ään.

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ää Application.HintHidePause -sovellusta piilottaaksesi 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.



Kommentit:

  1. Arashilabar

    Olen samaa mieltä kaikesta edellä mainitusta. Tutkimme tätä kysymystä.

  2. Jeronimo

    Kuunnella.

  3. Willy

    Mielestäni olet väärässä. Olen varma. Ehdotan keskustelua asiasta. Lähetä minulle sähköpostia

  4. Mylnric

    Liityn. Niin tapahtuu. Keskustelemme tästä kysymyksestä.

  5. Derward

    Painajainen. Katselin juuri uutisia, härät vain nousevat, miten voimme elää, jos öljyn hinta on pudonnut niin paljon. Jotkut luvut ja tulot sisällytettiin budjettiin, nyt näemme toiset. Ihmettelen kuinka kauan vakautusrahastomme riittää meille tällä lähestymistavalla. Anteeksi, olen niin lähellä aihetta. Mutta tämä on minusta myös tärkeää.

  6. Grojas

    Varmasti. Olen samaa mieltä kanssasi.



Kirjoittaa viestin