Өмір

Delphi қосымшаларында мәзір элементтерінің кеңестерін қалай көрсету керек

Delphi қосымшаларында мәзір элементтерінің кеңестерін қалай көрсету керек

Delphi қосымшаларын бағдарламалау үшін тінтуір мәзір компонентін апарған кезде кеңестерді немесе құралдар тақтасын көрсету үшін арнайы кодтау тілін қолданыңыз. Егер «ShowHint» сипаты «шын» күйіне орнатылса және сіз мәтінге «тұспал» сипаттамасын қоссаңыз, бұл хабар тінтуір компоненттің үстіне қойылған кезде пайда болады (мысалы, Түймешік).

Мәзір элементтері үшін кеңестерді қосыңыз

Windows-тың қалай жасалынғанына байланысты, егер сіз мәзір элементіне тұспал сипатының мәнін орнатсаңыз да, қалқымалы сөз көрінбейді. Дегенмен, Windows бастау мәзірінің элементтері дисплейге қатысты кеңестер береді. Internet Explorer-дегі сүйікті мәзір мәзір элементтерінің кеңестерін де көрсетеді.

Delphi қосымшаларындағы жаһандық қосымшаның OnHint оқиғасын күй жолағында мәзір элементтерінің кеңестерін көрсету үшін пайдалануға болады.

Windows дәстүрлі OnMouseEnter оқиғасын қолдауға қажет хабарларды жібермейді. Алайда, хабарлама WM_MENUSELECT жіберіледі, қашан пользователь дастархан мәзірімнің пунктын сайлайды.

TCustomForm (TForm-тің бабасы) WM_MENUSELECT орындалуы мәзір элементінің кеңесін «Application.Hint» -ке орнатады, сондықтан оны Application.OnHint оқиғасында қолдануға болады.

Delphi қосымшасының мәзіріне мәзір элементтерінің қалқымалы кеңестерін қосқыңыз келсе, WM_MenuSelect хабарламасына назар аударыңыз.

Қалқымалы кеңестер

Мәзір элементтеріне арналған анықтамалық терезені көрсету үшін Application.ActivateHint әдісіне сенім арта алмайтындықтан (мәзір өңдеуді толығымен Windows жасағандықтан), жұмыс терезесін көрсету үшін сіз жаңа сыныпты алу арқылы кеңестер терезесінің өз нұсқасын жасауыңыз керек. «ThintWindow» ішінен.

TMenuItemHint сыныбын қалай құру керек. Бұл мәзір мәзірінде көрінетін жесір әйел!

Біріншіден, сіз Windows хабарламасын өңдеңіз WM_MENUSELECT:

түрі
TForm1 = сынып(TForm)

жеке
процедурасы WMMenuSelect (var Ms: TWMMenuSelect); хабар WM_MENUSELECT;
Соңы
іске асыру

процедурасы
TForm1.WMMenuSelect (var Ms: TWMMenuSelect);
var
menuItem: TMenuItem; hSubMenu: HMENU;
баста

мұрагерлік; // TCustomForm-тен (Application.Hint тағайындалған)
menuItem: = нөл;
егер (MenuFlag $ FFFF) немесе (0-хабарлама) содан кейін
баста
егер МенуФлаг және MF_POPUP = MF_POPUP содан кейін
баста
hSubMenu: = GetSubMenu (Ms.Menu, Msg.IDItem);
menuItem: = Self.Menu.FindItem (hSubMenu, fkHandle);
Соңы
басқа
баста
menuItem: = Self.Menu.FindItem (Msg.IDItem, fkCommand);
Соңы;
Соңы; miHint.DoActivateHint (меню);
Соңы
; (* WMMenuSelect *)

Жылдам ақпарат: хабарлама WM_MENUSELECT дастархан мәзірімнің иесінің терезесіне жібереді, қашан пользователь дастархан мәзірімнің пунктын таңдайды (бірақ баспайды). TMenu сыныбындағы FindItem әдісін қолдана отырып, сіз қазір таңдалған мәзір элементін ала аласыз. FindItem функциясының параметрлері алынған хабарламаның сипаттамаларына қатысты. Тінтуірдің қандай мәзір элементі аяқталғанын білген соң, TMenuItemHint класының DoActivateHint әдісін атаймыз. MiHint айнымалы мәні «var miHint: TMenuItemHint» ретінде анықталады және Form OnCreate оқиғалар өңдегішінде жасалады.

Енді TMenuItemHint сыныбын енгізу қалды.

Мұнда интерфейс бөлігі:

TMenuItemHint = сынып(THintWindow)
жеке

activMenuItem: TMenuItem;
showTimer: TTimer;
hideTimer: TTimer;
процедурасы HideTime (жіберуші: TObject);
процедурасы ShowTime (жіберуші: TObject);
қоғамдық

конструктор Жасау (AOwner: TComponent); жоққа шығару;
процедурасы DoActivateHint (menuItem: TMenuItem);
деструктор Жою; жоққа шығару;
Соңы
;

Негізінен, DoActivateHint функциясы THintWindow-дің ActivateHint әдісін TMenuItem's Hint қасиетін қолдана отырып шақырады (егер ол тағайындалған болса). ShowTimer кеңестер көрсетілгенге дейін Бағдарламаның HintPause аяқталғанына көз жеткізу үшін қолданылады. HideTimer бағдарламасы аралық терезені көрсетілген аралықтан кейін жасыру үшін Application.HintHidePause қолданады.

Мәзір элементі кеңестерін пайдалану

Кейбіреулер мәзір элементтеріне қатысты кеңестерді көрсету жақсы дизайн емес деп айтуы мүмкін, бірақ жай-күй жолағын қолданғаннан гөрі мәзір элементтерінің кеңестерін көрсету әлдеқайда жақсы болатын жағдайлар бар. Жақында қолданылған (MRU) мәзір элементтерінің тізімі - осындай жағдайлардың бірі. Реттелетін тапсырмалар тақтасының мәзірі - бұл басқа.