Hogyan jeleníthetjük meg a menüpont-tippeket a Delphi alkalmazásokban

click fraud protection

Használjon speciális kódolási nyelvet a Delphi alkalmazások programozásához, hogy megjelenjen egy tipp vagy eszköztipp, amikor az egér az egérmutatót a menükomponens fölé viszi. Ha a "ShowHint" tulajdonság "true" értékre van állítva, és szöveget ad hozzá a "hint" tulajdonsághoz, akkor ez az üzenet akkor jelenik meg, amikor az egeret az összetevő fölé helyezik (például egy TB gomb).

Tipp engedélyezése a menüelemekhez

A Windows tervezésének módja miatt, még akkor sem, ha a tipp tulajdonságának menüpontot állítja be, a felugró tipp nem jelenik meg. A Windows Start menü elemei azonban megjelenítési tippeket tartalmaznak. Az Internet Explorer kedvenc menüje szintén megjeleníti a menüelemekre vonatkozó tippeket.

Lehetőség van a globális alkalmazás változó OnHint eseményének használatára Delphi Az alkalmazások megjelenítik a menüpont-tippeket az állapotsoron.

A Windows nem tárja fel a hagyományos OnMouseEnter esemény támogatásához szükséges üzeneteket. A WM_MENUSELECT üzenet azonban akkor kerül elküldésre, amikor a felhasználó kiválaszt egy menüpontot.

instagram viewer

A TCustomForm (a TForm őse) WM_MENUSELECT megvalósítása a menüpont-jelzést "Alkalmazás" -ra állítja. Tipp ", így használható az alkalmazásban. OnHint esemény.

Ha a menüelemek felbukkanó tippjeit (eszköztippjeit) szeretné hozzáadni a Delphi alkalmazásmenüjéhez, koncentráljon a WM_MenuSelect üzenetre.

Felbukkanó tippek

Mivel nem támaszkodhat az alkalmazásra. Az ActivateHint módszer segítségével megjeleníthető a menüelemekre vonatkozó utalási ablak (mivel a menükezelést teljesen a ablakok), hogy megjelenjen a célablak, el kell készítenie a tippablak saját verzióját egy új osztály létrehozásával a "THintWindow" segítségével.

Így hozhat létre egy TMenuItemHint osztályt. Ez egy tipp özvegy, amely valóban megjelenik menüelemek!

Először a WM_MENUSELECT Windows üzenetet kell kezelnie:

típus
TForm1 = osztály(TForm)
...
magán
eljárás WMMenuSelect (var Msg: TWMMenuSelect); üzenet WM_MENUSELECT;
vég...
végrehajtás
...
eljárás
TForm1.WMMenuSelect (var Msg: TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
kezdődik

örökölt; // a TCustomForm-tól (azaz az alkalmazás. Tipp hozzá van rendelve)
menuItem: = nulla;
ha (MSG. MenuFlag <> $ FFFF) vagy (MSG. IDItem <> 0) azután
kezdődik
ha Msg. MenuFlag és MF_POPUP = MF_POPUP azután
kezdődik
hSubMenu: = GetSubMenu (Üzenet. Menü, üzenet. IDItem);
menuItem: = Ön. Menü. FindItem (hSubMenu, fkHandle);
vég
más
kezdődik
menuItem: = Ön. Menü. FindItem (Üzenet. IDItem, fkCommand);
vég;
vég; miHint. DoActivateHint (menuItem);
vég
; (* WMMenuSelect *)

Gyors információ: A WM_MENUSELECT üzenetet elküldi a menü tulajdonosa ablakához, amikor a felhasználó kiválaszt egy menüpontot (de nem kattint rá). A TMenu osztály FindItem módszerével megkaphatja a jelenleg kiválasztott menüpontot. A FindItem függvény paraméterei a kapott üzenet tulajdonságaival kapcsolatosak. Amint megtudjuk, hogy melyik menüpont felett vége az egér, hívjuk a TMenuItemHint osztály DoActivateHint módszerét. A miHint változót "var miHint: TMenuItemHint" -ként definiálják, és az űrlap OnCreate eseménykezelő.

Most már csak a TMenuItemHint osztály megvalósítása maradt.

Itt van a felület része:

TMenuItemHint = osztály(THintWindow)
magán

activeMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
eljárás HideTime (Feladó: TObject);
eljárás ShowTime (Feladó: TObject);
nyilvános

konstruktőr Létrehozás (tulajdonos: TComponent); felülírás;
eljárás DoActivateHint (menuItem: TMenuItem);
pusztító Elpusztítani; felülírás;
vég
;

Alapvetően a DoActivateHint funkció meghívja a THintWindow ActivateHint módszerét a TMenuItem's Hint tulajdonság segítségével (ha hozzá van rendelve). A showTimer-t annak biztosítására használják, hogy az alkalmazás HintPause-je lejár-e még a tipp megjelenése előtt. A hideTimer az alkalmazást használja. HintHidePause - a cél ablak elrejtése egy megadott időközönként.

A menüpont használata

Noha egyesek azt mondhatják, hogy a menüelemekre vonatkozó tippeket nem jó megjeleníteni, vannak olyan helyzetek, amikor a menüelemekre vonatkozó tippeket valóban sokkal jobb megjeleníteni, mint az állapotsor használata. Az egyik ilyen eset a legutóbb használt (MRU) menüelemek listája. Az egyéni tálcamenü egy másik.

instagram story viewer