§ 5. Стварэнне дадаткаў

5.3. Стварэнне меню

Практычна любы дадатак павінен мець меню, якое дае зручны доступ да функцый праграмы. Існуе некалькі тыпаў меню:

  • галоўнае меню з выпадальнымі спісамі раздзелаў;
  • каскадныя меню, у якіх раздзелу першаснага меню ставіцца ў адпаведнасць спіс падраздзелаў;
  • кантэкстныя меню, якія з'яўляюцца пры націску правай клавішай мышы па аб'екце.

У Delphi меню ствараюцца кампанентамі MainMenu (галоўнае меню) и PopupMenu  (кантэкстнае меню), размешчанымі на панэлі Standard. На форме кампаненты можна размяшчаць у любым месцы, падчас выканання праграмы самі кампаненты нябачныя (прыклад 5.9). На этапе выканання праграмы галоўнае меню будзе змешчана на сваё стандартнае месца  наверсе формы, кантэкстнае меню з'явіцца толькі пасля націску правай кнопкі мышы па тым кампаненце, да якога яно адносіцца.

Для дадання новых пунктаў меню трэба зрабіць двайную пстрычку па MainMenu1 або націснуць на кнопку    каля ўласцівасці Items у акне інспектара аб'ектаў. Адкрыецца акно рэдактара меню (прыклад 5.10). Кожны пункт меню з'яўляецца асобным аб'ектам. Назвы пунктаў меню прапісваюцца ва ўласцівасці Caption у акне інспектара аб'ектаў. Стварэннем пунктаў меню можна кіраваць з кантэкстнага меню (прыклад 5.11). Пункт Create Submenu дазваляе ствараць каскадныя меню. Структуру меню можна ўбачыць у акне (прыклад 5.12).

Для кожнага пункта меню асноўнай падзеяй з'яўляецца OnClick.

Стварэнне кантэкстных меню аналагічна стварэнню галоўнага меню. Пункты меню дадаюцца ў акне рэдактара меню. Для таго каб пры пстрычцы правай кнопкай мышы на некаторым кампаненце з'яўлялася кантэкстнае меню, трэба напісаць імя кантэкстнага меню ва ўласцівасці PopupMenu для вылучанага кампанента (прыклад 5.13)

Прыклад 5.9. Меню на форме:

Прыклад 5.10. Рэдактар меню:

Калі ў якасці значэння ўласцівасці Caption увесці «–», то замест пункта меню з'явіцца раздзяляльнік.

Прыклад 5.11. Кантэкстнае меню рэдактара:

Прыклад 5.12. Структура меню:

Прыклад 5.13. Кантэкстнае меню для кампанента Button1:

Напісанне апрацоўшчыкаў для меню і дыялогаў будзе разгледжана ў наступных пунктах.