Upotrijebite određeni jezik kodiranja za programiranje Delphi aplikacija za prikaz savjeta ili upozorenja kada miš prelazi preko komponente izbornika. Ako je svojstvo "ShowHint" postavljeno na "true" i dodate tekst svojstvu "hint", ova će se poruka prikazati kada miš postavite iznad komponente (na primjer, TButton).
Omogući savjete za stavke izbornika
Zbog načina na koji je Windows dizajniran, čak i ako vrijednost svojstva nagovještaja postavite na stavku izbornika, skočni namig neće se prikazati. Međutim, stavke izbornika Windows Start nude savjete. Izbornik favorita u programu Internet Explorer prikazuje i savjete o stavkama izbornika.
Moguće je koristiti OnHint događaj globalne varijable aplikacije u Delphi aplikacija za prikaz savjeta o stavkama izbornika u traci statusa.
Windows ne izlaže poruke potrebne za podršku tradicionalnom događaju OnMouseEnter. Međutim, poruka WM_MENUSELECT šalje se kada korisnik odabere stavku izbornika.
WM_MENUSELECT implementacija TCustomForm (predak TForma) postavlja nagovještaj stavke izbornika na "Application. Savjet ", tako da se može koristiti u Aplikaciji. OnHint događaj.
Ako želite dodati svoje upozorenje (izborne savjete) stavki izbornika u svoje Delphi izbornike, usredotočite se na poruku WM_MenuSelect.
Popup Savjeti
Budući da se ne možete pouzdati u aplikaciju. ActivateHint metoda za prikaz prozora sa nagoveštajima za stavke izbornika (kao što u potpunosti radi rukovanje izbornikom Windows), da biste prikazali prozor sa nagovještajem, morate kreirati vlastitu verziju prozora savjeta izvodeći novu klasu iz "THintWindow".
Evo kako stvoriti klasu TMenuItemHint. Ovo je udovica za nagovještaja koja se zapravo prikazuje stavke izbornika!
Prvo, trebate obraditi WM_MENUSELECT poruku za Windows:
tip
TForm1 = klasa(TForm)
...
privatna
postupak WMMenuSelect (var Msg: TWMMenuSelect); poruka WM_MENUSELECT;
kraj...
izvršenje...
postupak TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var menuItem: TMenuItem; hSubMenu: HMENU;
početi
naslijedio; // iz TCustomForm (tako da aplikacija. Savjet je dodijeljen)
menuItem: = nula;
ako (Poruka. MenuFlag <> $ FFFF) ili (Poruka. IDItem <> 0) zatim
početi
ako Por. MenuFlag i MF_POPUP = MF_POPUP zatim
početi
hSubMenu: = GetSubMenu (Msg. Izbornik, Poruke IDItem);
menuItem: = Ja. Izbornik. FindItem (hSubMenu, fkHandle);
kraj
drugo
početi
menuItem: = Ja. Izbornik. FindItem (Msg. IDItem, fkCommand);
kraj;
kraj; miHint. DoActivateHint (menuItem);
kraj; (* WMMenuSelect *)
Brze informacije: poruka WM_MENUSELECT šalje se u prozor vlasnika izbornika kada korisnik odabere (ali ne klikne) stavku izbornika. Korištenjem metode FindItem iz TMenu klase, možete dobiti trenutno odabranu stavku izbornika. Parametri funkcije FindItem odnose se na svojstva primljene poruke. Nakon što saznamo nad kojom stavkom izbornika je miš gotov, zovemo metodu DoActivateHint klase TMenuItemHint. MiHint varijabla je definirana kao "var miHint: TMenuItemHint" i kreirana je u Oblikima onCreate dostavljač događaja.
Ono što preostaje je implementacija klase TMenuItemHint.
Evo dijela sučelja:
TMenuItemHint = klasa(THintWindow)
privatna
activeMenuItem: TMenuItem;
showTimer: TTimer;
hidTimer: TTimer;
postupak HideTime (pošiljalac: TObject);
postupak ShowTime (pošiljalac: TObject);
javnost
konstruktor Stvori (AOwner: TComponent); nadglasati;
postupak DoActivateHint (menuItem: TMenuItem);
peć za sagorijevanje otpadaka Uništiti; nadglasati;
kraj;
U osnovi, DoActivateHint funkcija poziva metodu ActivateHint ThintWindow koristeći svojstvo Htodije TMenuItem (ako je dodijeljeno). ShowTimer se koristi kako bi se osiguralo da HintPause aplikacije protekne prije nego što se prikaže savjeti. The SecTimer koristi Application. HintHidePause za skrivanje prozora savjeta nakon određenog intervala.
Korištenje savjeta o stavkama izbornika
Iako bi neki mogli reći da nije dobar dizajn za prikazivanje savjeta za stavke izbornika, postoje situacije u kojima je prikazivanje savjeta o stavkama izbornika mnogo bolje nego pomoću statusne trake. Popis nedavno korištenih stavki (MRU) izbornika jedan je takav slučaj. Drugi izbornik korisničke trake je.