החיים

כיצד להציג רמזים לפריטים בתפריט ביישומי דלפי

כיצד להציג רמזים לפריטים בתפריט ביישומי דלפי


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.

השתמש בשפת קידוד ספציפית כדי לתכנת יישומי דלפי להצגת רמז, או הסבר כלים, כאשר העכבר מרחף מעל רכיב בתפריט. אם המאפיין "ShowHint" מוגדר כ- "true" ותוסיף טקסט למאפיין "hint", הודעה זו תוצג כאשר העכבר ממוקם מעל הרכיב (לחצן TB, למשל).

הפעל רמזים לפריטים בתפריט

בגלל התכנון של Windows, גם אם תגדיר את הערך של נכס הרמז לפריט בתפריט, הרמז הקופץ לא יופיע. עם זאת, פריטי תפריט ההתחלה של Windows מציגים רמזים. התפריט המועדפים ב- Internet Explorer מציג גם רמזים לפריטים בתפריט.

ניתן להשתמש באירוע OnHint של משתנה היישום הגלובלי ביישומי דלפי כדי להציג רמזים לפריטים בתפריט בשורת מצב.

Windows אינו חושף את ההודעות הדרושות לתמיכה באירוע OnMouseEnter מסורתי. עם זאת, הודעת WM_MENUSELECT נשלחת כאשר המשתמש בוחר פריט בתפריט.

יישום WM_MENUSELECT של TCustomForm (אב הקדמון של TForm) מגדיר את רמז פריט התפריט ל- "Application.Hint" כך שניתן להשתמש בו באירוע Application.OnHint.

אם ברצונך להוסיף רמזים קופצים של פריטי תפריט (טיפים) לתפריטי היישום שלך בדלפי, התמקד בהודעת WM_MenuSelect.

רמזים קופצים

מכיוון שאינך יכול לסמוך על שיטת היישום. ActivateHint כדי להציג את חלון הרמז לפריטים בתפריט (שכן הטיפול בתפריט נעשה לחלוטין על ידי Windows), כדי להציג את חלון הרמז, עליך ליצור גרסה משלך לחלון הרמז על ידי נגזרת של מחלקה חדשה מתוך "THintWindow".

כך תוכלו ליצור כיתת TMenuItemHint. זוהי אלמנת רמז שמוצגת בפועל עבור פריטי תפריט!

ראשית, עליך לטפל בהודעת Windows_MENUSELECT Windows:

סוג
TForm1 = מעמד(TForm)

פרטי
תהליך WMMenuSelect (var מס ': TWMMenuSelect); הודעה WM_MENUSELECT;
סוף
יישום

תהליך
TForm1.WMMenu בחר (var מס ': TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
התחל

ירש; // מ- TCustomForm (כך שמוקצה ל- Application.Hint)
menuItem: = אפס;
אם (Msg.MenuFlag $ FFFF) או (Msg.IDitem 0) לאחר מכן
התחל
אם Msg.MenuFlag ו MF_POPUP = MF_POPUP לאחר מכן
התחל
hSubMenu: = GetSubMenu (Msg.Menu, Msg.IDItem);
menuItem: = Self.Menu.FindItem (hSubMenu, fkHandle);
סוף
אחר
התחל
menuItem: = Self.Menu.FindItem (Msg.IDItem, fkCommand);
סוף;
סוף; miHint.DoActivateHint (menuItem);
סוף
; (* WMMenuSelect *)

מידע מהיר: הודעת WM_MENUSELECT נשלחת לחלון הבעלים של התפריט כאשר המשתמש בוחר (אך לא לוחץ) על פריט בתפריט. בשיטת FindItem בשיעור TMenu, באפשרותך לקבל את פריט התפריט שנבחר כעת. פרמטרים של פונקציית FindItem קשורים לתכונות ההודעה שהתקבלה. ברגע שאנו יודעים איזה פריט בתפריט נגמר העכבר, אנו קוראים לשיטת DoActivateHint בשיעור TMenuItemHint. משתנה miHint מוגדר כ- "var miHint: TMenuItemHint" ונוצר במטפל האירועים OnCreate של הטופס.

כעת, מה שנותר הוא יישום מחלקת TMenuItemHint.

להלן חלק הממשק:

TMenuItemHint = מעמד(THintWindow)
פרטי

activeMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
תהליך HideTime (שולח: TObject);
תהליך ShowTime (שולח: TObject);
ציבורי

בנאי צור (AOwner: TComponent); לבטל;
תהליך DoActivateHint (menuItem: TMenuItem);
הרס להרוס; לבטל;
סוף
;

בעיקרון, הפונקציה DoActivateHint קוראת לשיטת ActivateHint של THintWindow באמצעות המאפיין Hint של TMenuItem (אם מוקצה). ה- ShowTimer משמש כדי להבטיח ש- HintPause של היישום יחלוף לפני שמוצג הרמז. ה- hideTimer משתמש ב- Application.HintHidePause כדי להסתיר את חלון הרמז לאחר מרווח מוגדר.

שימוש ברמזים לפריט תפריט

אמנם יש שיגידו שזה לא עיצוב טוב להציג רמזים לפריטים בתפריט, אך ישנם מצבים שבהם הצגת רמזים לפריטים בפועל היא טובה בהרבה מאשר שימוש בסרגל מצב. רשימת פריטי תפריט שהשתמשו בהם לאחרונה (MRU) היא מקרה אחד כזה. תפריט סרגל משימות מותאם אישית הוא אחר.