Kako prikazati nasvete o menijskih elementih v aplikacijah Delphi

Uporabite poseben kodni jezik za programiranje aplikacij Delphi za prikaz namigi ali namizja, ko miška potegne miško nad komponento menija. Če je lastnost "ShowHint" nastavljena na "true" in dodate besedilo v lastnost "namig", se bo to sporočilo prikazalo, ko miško postavite nad komponento (na primer TButton).

Omogoči namige za elemente menija

Zaradi načina oblikovanja sistema Windows, tudi če nastavite vrednost za lastnosti namigi v menijsko postavko, se pojavni namig ne prikaže. Kljub temu pa elementi menija v začetnem meniju Windows prikazujejo namige. V meniju za priljubljene v programu Internet Explorer so prikazani tudi namigi glede elementov menija.

Mogoče je uporabiti dogodek OnHint globalne spremenljivke aplikacij v Delphi aplikacije za prikaz namiznih namigov v menijski vrstici.

Windows ne izpostavlja sporočil, potrebnih za podporo tradicionalnemu dogodku OnMouseEnter. Vendar pa sporočilo WM_MENUSELECT pošlje, ko uporabnik izbere element v meniju.

Izvedba WM_MENUSELECT TCustomForm (prednik TForma) nastavi namig na postavko menija na "Application. Namig ", tako da se lahko uporablja v aplikaciji. Dogodek na spletu

instagram viewer

Če želite v svoje menije aplikacij Delphi dodati okna s namiznimi namigi (orodni namigi), se osredotočite na sporočilo WM_MenuSelect.

Popup namigi

Ker se ne morete zanašati na aplikacijo. Metoda ActivateHint za prikaz okna z namigi za elemente v meniju (ker menija v celoti izvaja Windows), če želite prikazati okno z namigi, morate ustvariti svojo različico okna z namigi z izvedbo novega razreda iz "THintWindow".

Tukaj je opisano, kako ustvariti razred TMenuItemHint. To je namig, ki je dejansko prikazan postavke menija!

Najprej morate obdelati sporočilo WM_MENUSELECT Windows:

tip
TForm1 = razred(TForm)
...
zasebno
postopek WMMenuSelect (var Sporočilo: TWMMenuSelect); sporočilo WM_MENUSELECT;
konec...
izvajanje
...
postopek
TForm1.WMMenuSelect (var Sporočilo: TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
začeti

podedovano; // iz TCustomForm (tako da je aplikacija. Namig je dodeljen)
menuItem: = nič;
če (Sporoč. MenuFlag <> $ FFFF) ali (Sporoč. IDItem <> 0) torej
začeti
če Sporoč. MenuFlag in MF_POPUP = MF_POPUP torej
začeti
hSubMenu: = GetSubMenu (Msg. Meni, Sporoč. IDItem);
menuItem: = Self. Meni. FindItem (hSubMenu, fkHandle);
konec
drugače
začeti
menuItem: = Self. Meni. FindItem (sporočilo IDItem, fkCommand);
konec;
konec; miHint. DoActivateHint (menuItem);
konec
; (* WMMenuSelect *)

Hitre informacije: sporočilo WM_MENUSELECT se pošlje v okno lastnika menija, ko uporabnik izbere (a ne klikne) element menija. S pomočjo metode FindItem razreda TMenu lahko dobite trenutno izbrano postavko menija. Parametri funkcije FindItem se nanašajo na lastnosti prejetega sporočila. Ko vemo, za katero postavko menija je miš končana, pokličemo metodo DoActivateHint razreda TMenuItemHint. Spremenljivka miHint je opredeljena kot "var miHint: TMenuItemHint" in je ustvarjena v obrazcu OnCreate obdelovalec dogodkov.

Zdaj je le še izvedba razreda TMenuItemHint.

Tukaj je del vmesnika:

TMenuItemHint = razred(THintWindow)
zasebno

activeMenuItem: TMenuItem;
showTimer: TTimer;
skrivajTimer: TTimer;
postopek HideTime (pošiljatelj: TObject);
postopek ShowTime (pošiljatelj: TObject);
javnosti

konstruktor Ustvari (AOwner: TComponent); preglasiti;
postopek DoActivateHint (menuItem: TMenuItem);
uničevalnik Uničiti; preglasiti;
konec
;

V bistvu funkcija DoActivateHint pokliče metodo ActivateHint THintWindow z uporabo lastnosti namigi TMenuItem (če je dodeljena). ShowTimer se uporablja za zagotovitev, da HintPause aplikacije preteče, preden se prikaže namig. Skrivalnik uporablja aplikacijo. HintHidePause za skrivanje okna z namigi po določenem intervalu.

Uporaba namigi za elemente menija

Medtem ko nekateri lahko rečejo, da ni dobro oblikovati namigov za elemente menijev, obstajajo situacije, ko je dejansko namigovanje nasvetov o menijih veliko boljše kot uporaba vrstice stanja. Takšen primer je nedavno uporabljeni seznam elementov menija (MRU). Meni opravilne vrstice je še en.

instagram story viewer