как сделать меню в делфи
MainMenu — главное меню программы на Delphi
Главное меню располагается в верхней части формы под ее заголовком (см. скриншот) и содержит наиболее общие команды приложения. В Delphi главное меню представлено компонентом MainMenu.
При изменении размеров формы соответствующим образом меняются размеры и размещение пунктов строчного меню. Отметим, что уменьшение ширины формы ограничено размером самого длинного заголовка, имеющегося в меню.
При проектировании приложения в форме видны компонент MainMenu и соответствующая ему строка меню. Отображаемая строка меню выглядит и ведет себя так же, как при выполнении программы. На этапе проектирования приложения для перехода в процедуру обработки события OnClick пункта меню следует выбрать этот пункт с помощью клавиатуры или мыши.
Конструктор меню
Для создания и изменения меню в процессе разработки приложения в среде Delphi предназначен Конструктор меню (Menu Designer). Запуск Конструктора меню выполняется командой Menu Designer (Конструктор меню) контекстного меню компонента MainMenu или PopupMenu, а также с помощью двойного щелчка мыши на этих же компонентах. Предварительно один из этих компонентов следует добавить в форму. Напомним, что компоненты MainMenu и PopupMenu размещаются на странице Standard Палитры компонентов.
Конструктор меню похож на текстовый редактор и предоставляет возможность достаточно просто и удобно конструировать меню любого типа. Меню при конструировании имеет тот же вид, что и при выполнении приложения. Вид меню при конструировании с помощью Конструктора меню показан на скриншоте ниже.
При работе с Конструктором меню используются команды его контекстного меню (см. скриншот), вызываемого щелчком правой кнопкой мыши при размещении указателя в области Конструктора меню.
С их помощью можно добавить (Insert) и удалить (Delete) пункт меню, создать подменю (Create Submenu), выбрать меню (Select Menu), сохранить меню как шаблон (Save As Template), вставить меню из шаблона (Insert From Template), удалить шаблоны меню (Delete Templates) и вставить меню из файла ресурса (Insert From Resource).
При конструировании меню можно также перетаскивать мышью (drag-and-drop) пункты меню и подменю. Используемый совместно с Конструктором меню Инспектор объектов позволяет управлять свойствами отдельных пунктов меню. В частности, заголовок пункта меню задается путем присвоения нужного значения его свойству Сaption.
В окне Конструктора меню можно сохранить редактируемое меню в качестве шаблона для дальнейшего использования. При выборе команды контекстного меню Save As Template (Сохранить как шаблон) появляется окно Save Template (Сохранить шаблон) (см. скриншот).
В поле Template Description (Описание шаблона) этого окна нужно ввести имя для сохранения шаблона меню. Сохраненный шаблон в дальнейшем можно использовать при создании меню в этом или других приложениях. Список в нижней части окна Save Template содержит имена ранее сохраненных шаблонов меню.
Для загрузки сохраненного шаблона меню следует выполнить команду контекстного меню Insert From Template (Вставить из шаблона), при этом появляется окно, подобное приведенному выше. После нажатия кнопки ОК выбранный в окне шаблон подключается к создаваемому в Конструкторе меню как отдельный пункт.
С помощью Конструктора меню нельзя сохранить меню в качестве ресурса.
Как сделать меню в делфи
Компонент Delphi MainMenu предназначен для добавления к программе главного меню, элемента, без которого не обходится ни одно из приложений для Windows.
Чтобы добавить к программе Delphi главное меню, нужно расместить на Форме в произвольном месте компонент MainMenu. Компонент MainMemu невизуальный, то есть, хотя и отображается на прототипе Формы как небольшой квадрат, в работающей программе не будет виден. Опции главного меню создаются с помощью специального редактора. Редактор меню вызывается с помощью двойного щелчка по компоненту MainMenu. Первоначально меню пустое, но имеет один выделенный элемент:
Обратите внимание на то, что автоматически Delphi создаёт следующий пустой пункт меню верхнего уровня. А щёлкнув в редакторе меню по синему прямоугольничку F ile, мы сразу получим пустой пункт меню второго уровня. Они не выделены, и отображаются белыми прямоугольниками. Щелкнув по одному из них, мы получим возможность редактировать его совершенно аналогично. Пока их свойства не заданы, в работающей программе на Форме они не появятся, и удалять в редакторе их не нужно.
Кстати, описывать обработчик OnClick пунктов меню верхнего уровня не обязятельно, раскрывание меню при щелчку мышкой происходит автоматически. Но в случае необходимости произвести какие-либо действия при раскрытии меню этот обработчик позволит это сделать.
BestProg
Пример создания главного меню. Компонент TMainMenu
Содержание
Условие задачи
Задана форма приложения. Используя средства Embarcadero Delphi 2010 создать меню как показано на рисунке 1.
Рис. 1. Меню приложения, которое нужно создать
Выполнение
1. Запустить Delphi. Сохранить проект
2. Создание главного меню
Рис. 2. Главная форма приложения с компонентом MainMenu1
Вызываем режим формирования меню (рис. 3).
Это осуществляется двумя способами:
Рис. 3. Команда выбора окна создания меню
В результате вызова « Menu Designer… » открывается окно формирования меню (рис. 4).
Рис. 4. Окно для создания меню
В ячейки меню вводим соответствующие названия элементов (команд) используя свойство Caption для каждого элемента меню. Можно создавать сложную структуру из спадающих подменю. В нашем случае создаем меню как показано на рисунке 5.
Рис. 5. Сформированное меню
Меню « File… » содержит подменю с командами:
Команда меню, « Exit » не имеет подменю.
3. Назначение клавиш быстрого вызова элементам меню
Осуществим назначение комбинации клавиш « Ctrl+N » для команды « New… » из меню « File «. Это означает, что при нажатии « Ctrl+N » будет вызываться команда « New… «.
Для этого необходимо выполнить следующую последовательность действий (рис. 6):
Рис. 6. Назначение комбинации клавиш «Ctrl+N» команде «New…» из меню «File»
Согласно с условием задачи назначаем другим командам меню клавиши быстрого вызова. Окно «Menu Designer…» будет иметь вид как показано на рисунке 7.
Рис. 7. Окно «Menu Designer» после окончательного формирования
4. Запуск программы
Можна протестировать программу и запустить ее на исполнение. Окно программы будет иметь вид как показано на рисунке 8.
Рис. 8. Программа в режиме выполнения с развернутым меню «File»
После выполненной работы можно программировать события, которые будут обрабатываться при вызове той или иной команды.
Программирование: теория и практика
Рубрики
Свежие записи
При использовании материалов сайта, ссылка на сайт обязательна.
Как сделать меню в делфи
Компонент Delphi MainMenu предназначен для добавления к программе главного меню, элемента, без которого не обходится ни одно из приложений для Windows.
Чтобы добавить к программе Delphi главное меню, нужно расместить на Форме в произвольном месте компонент MainMenu. Компонент MainMemu невизуальный, то есть, хотя и отображается на прототипе Формы как небольшой квадрат, в работающей программе не будет виден. Опции главного меню создаются с помощью специального редактора. Редактор меню вызывается с помощью двойного щелчка по компоненту MainMenu. Первоначально меню пустое, но имеет один выделенный элемент:
Обратите внимание на то, что автоматически Delphi создаёт следующий пустой пункт меню верхнего уровня. А щёлкнув в редакторе меню по синему прямоугольничку F ile, мы сразу получим пустой пункт меню второго уровня. Они не выделены, и отображаются белыми прямоугольниками. Щелкнув по одному из них, мы получим возможность редактировать его совершенно аналогично. Пока их свойства не заданы, в работающей программе на Форме они не появятся, и удалять в редакторе их не нужно.
Кстати, описывать обработчик OnClick пунктов меню верхнего уровня не обязятельно, раскрывание меню при щелчку мышкой происходит автоматически. Но в случае необходимости произвести какие-либо действия при раскрытии меню этот обработчик позволит это сделать.
Обзор компонентов Delphi В начало урока Delphi компонент PopupMenu
А почему не работают ссылки на ваши последние уроки?
ScrollBar
GroupBox
RadioGroup
Panel
ActionList
Так нужна информация в хорошем оформлении.
Сделайте пожалуйста! Спасибо! Сергей, добавлено 19.03.14, 15:24:20
Эти mainmenu или actionmenedger полный атстой покрайне мере в том виде в каком они есть в c++builder6.Вроде бы такие важные компаненты,а например mainmenu не вписать в общий интерфейс например потому что нет свойства color или actionmeneger не сделать разделительные полосы в меню,короче полное г. Обидно,что приходиться извращаться когда можно было такие свойства сделать изначально. Автор, добавлено 19.03.14, 15:29:32
Да, Сергей, согласен, что стандартизация уменьшает возможности. Но она же и открывает другие: не отвлекаясь на «красивости», можно быстро создавать эффективные программы.
Меню в программах на Delphi
Меню является важнейшими элементами управления пользовательского интерфейса любого приложения. Кроме того, коснемся механизма действий, позволяющего синхронизировать совместную работу различных элементов управления.
Практически все Windows-приложения имеют меню, которое является распространенным элементом пользовательского интерфейса. Меню представляет собой список объединенных по функциональному признаку пунктов, каждый из которых обозначает команду или вложенное меню (подменю). Выбор пункта меню равносилен выполнению соответствующей команды или раскрытию подменю.
Пункт меню или подменю представляет собой объект типа TMenuItem. Отдельный пункт меню (подменю) обычно виден как текстовый заголовок, описывающий назначение пункта меню. Пункт меню может быть выделен (маркирован) для указания включенного состояния. Класс TMenuItem служит для представления пунктов главного и контекстных меню.
Cвойства пункта меню:
Bitmap типа TBitmap (значок, размещаемый слева от заголовка пункта меню). По умолчанию свойство имеет значение Nil, и значок отсутствует;
Break типа TmenuBreak (признак разделения меню на столбцы). Свойство Break может принимать одно из трех значений:
Caption типа String (строка текста, отображаемая как заголовок пункта меню). Если в качестве заголовка указать символ «-», то на месте соответствующего пункта меню отображается разделительная линия. При этом, несмотря на отображение линии, свойство Caption попрежнему имеет значение «-»;
Checked типа Boolean (признак того, помечен пункт или нет). Если свойство установлено в значение True, то пункт помечен, и в его заголовке появляется специальная отметка. По умолчанию свойство Checked имеет значение False, и пункт меню не имеет отметки;
AutoCheck типа Boolean (признак автоматического изменения значения свойства Checked на противоположное при выборе пользователем пункта меню);
Count типа Integer (количество подпунктов в данном пункте меню). Это свойство есть у каждого пункта меню. Если какой-либо пункт не содержит подпунктов, то свойство Count имеет нулевое значение;
Enabled типа Boolean (признак активности пункта, т. е. будет ли он реагировать на события от клавиатуры и мыши). Если свойство Enabled установить в значение False, то пункт меню будет неактивным, и его заголовок становится бледным. По умолчанию свойство Enabled имеет значение True, и пункт меню активен;
Items типа TMenuItems (массив подпунктов текущего пункта меню). У каждого пункта меню, имеющего вложенное меню (подменю), пункты этого подменю перечислены в свойстве Items. Это свойство позволяет получить доступ к пунктам подменю по их позициям в массиве: items [0], items [1] и т. д.;
RadioItem типа Boolean (вид отметки, появляющейся в заголовке пункта). Если свойство установлено в значение False (по умолчанию), то в качестве отметки используется значок «галочка», в противном случае пункт отмечается жирной точкой;
Visible типа Boolean (признак видимости пункта на экране). Если свойство Visible установлено в значение False, то пункт меню на экране не отображается. По умолчанию свойство Visible имеет значение True, и пункт виден в меню.
На скриншоте выше приведен пример меню Menul (подменю главного меню), разделенного на два столбца. У пункта Открыть этого меню свойство Break имеет значение mbBarBreak, у пункта Открыть как. свойство Break— значение mbBarBreak, для Закрыть как. свойству Break установлено значение mbNone.
Основным событием, связанным с пунктом меню, является событие OnClick, возникающее при выборе пункта с помощью клавиатуры или мыши. В приложении для генерации события OnClick или для имитации выбора пункта меню можно использовать метод Click. Вызов этой процедуры эквивалентен выбору соответствующего пункта меню пользователем.
Нажатие кнопки Button1 приводит к тому же эффекту, что и выбор пункта меню mnuLockltem.
Для создания меню (как подменю главного меню) или контекстного меню при разработке приложения используется Конструктор меню. Меню также можно создавать или изменять динамически — непосредственно в ходе выполнения приложения.