10865

Организация меню. Главное и контекстное меню. Компонент TActionList

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 3 Организация меню. Главное и контекстное меню. Компонент TActionList Для организации главного меню формы используется невизуальный компонент MainMenu. Располагается этот компонент на вкладке Standard палитры компонентов Delphi. Рассмотрим работу этого ком...

Русский

2013-04-02

1.99 MB

34 чел.

Лабораторная работа № 3

«Организация меню. Главное и контекстное меню. Компонент TActionList»

Для организации главного меню формы используется невизуальный компонент MainMenu. Располагается этот компонент на вкладке Standard палитры компонентов Delphi. Рассмотрим работу этого компонента на примере небольшого приложения.

Создадим новое приложение. Поместим на форму компонент MainMenu. Главное меню формируется при помощи дизайнера меню. Дизайнер меню можно вызвать двойным щелчком левой кнопки мыши над компонентом MainMenu или через свойство Items этого компонента в Инспекторе объектов. Дизайнер меню представляет собой редактор элементов (пунктов) меню, он автоматически предлагает создать каждый новый пункт меню, и автоматически дает им имена.

Каждый пункт меню имеет свои собственные свойства и события, которые отображаются в Инспекторе объектов при выделении пункта меню. Главное меню состоит из строки элементов, к каждому из которых может быть сформировано выпадающее меню.

За текст элемента меню отвечает его свойство Caption. В выпадающем меню текст «-» в свойстве Caption элемента воспринимается как команда по разделению, и на месте элемента меню появится разделяющая линия.  Создадим стандартное для большинства приложений меню (Рис. 1):

Рис.1. Дизайнер меню.

 

Дизайнер позволяет осуществлять редактирование меню при помощи своего контекстного меню, которое вызывается по нажатию правой кнопки мыши. Например, создадим выпадающее меню для созданного нами пункта меню «Печать». Для этого выделим этот пункт меню (Рис. 1), далее вызовем контекстное меню и выберем команду Create Submenu (создать подменю). После чего дизайнер предложит нам создать элементы этого меню (Рис. 2).

Контекстное меню дизайнера позволяет осуществлять удаление и вставку элементов меню. Для этого можно также использовать клавиши Delete и Insert.


Рис. 2. Создание подменю

Создадим подменю из двух элементов («Настройка печати», «Печать»). После этого закроем  дизайнер меню. Форма примет следующий вид (Рис. 4):

Рис. 4. Редактируемая форма. Сформированное главное меню.

Создадим контекстное меню, по составу аналогичное выпадающему меню в первом пункте главного меню. Контекстное меню реализуется при помощи компонента PopupMenu. Этот компонент располагается на вкладке Standard палитры компонентов Delphi. Контекстное меню изначально не принадлежит ни одному из компонентов, но оно может быть назначено любому визуальному компоненту. Для этого большинство визуальных компонентов имеют свойство PopupMenu. Контекстное меню создается также как и главное при помощи дизайнера меню. После того как контекстное меню создано, назначим его форме. Для этого в списке значений свойства PopupMenu формы выберем значение PopupMenu1. Запустим приложение и правой кнопкой мыши над формой вызовем созданное нами контекстное меню (Рис. 5).

Рис. 5. Работающее приложение. Контекстное меню формы.

Для того чтобы определить код, который должен выполняться при выборе элемента меню, необходимо создать обработчик события OnClick элемента меню. Это осуществляется в дизайнере меню: выделяется элемент меню, в Инспекторе объектов на вкладке Events выбирается событие OnClick и двойным щелчком мыши в область значения этого свойства создается обработчик события.

Фактически мы имеем два одинаковых меню (Главное и контекстное) и нам придется писать два одинаковых кода в обработчиках событий. Допустим меню «Сохранить как» вызывает сложный, громоздкий код сохранения какого-либо проекта в файл. Будет достаточно неудобно копировать два куска кода, и увеличивать размеры программы. А если будет существовать еще несколько графических кнопок, которые будут выполнять то же самое? Конечно, гораздо удобнее создать одну подпрограмму.

Для того чтобы избавить программиста от ненужных манипуляций с вызовом одного и того же кода при событиях различных компонентов, был спроектирован невизуальный компонент TActionList. Он располагается на вкладке  Standard палитры компонентов. Поместим его на форму.

Двойным щелчком вызывается редактор подпрограмм, они называются Actions (действия). Создадим одно действие (Рис. 6). Выделим строку Action1, свойству Caption действия назначим значение «Сохранить как». В Инспекторе объектов создадим обработчик события OnExecute элемента Action1. В обработчик события OnExecute поместим вызов информационного окна, которое будет сигнализировать о выбранном действии.

procedure TForm1.Action1Execute(Sender: TObject);

begin

  Showmessage('Вызвано действие сохранения');

end;

Завершим работу с редактором действий и перейдем на форму.

Рис. 6. Редактор действий.

Вызовем дизайнер меню MainMenu1. Выделим элемент «Сохранить как» и в его свойстве Action выберем наше действие Action1. Вызовем дизайнер меню PopupMenu1. Выделим элемент «Сохранить как» и в его свойстве Action выберем наше действие Action1. Запустим приложение и проверим работу меню.

Далее, если нам необходимо будет изменить код действия сохранения, нам не придется обращаться поочередно к одинаковым пунктам главного и контекстного меню. Достаточно будет лишь обратится к компоненту ActionList1, вызвать редактор действий, и изменить обработчик события OnExecute действия Action1.

Общее задание

Создайте действия при помощи компонента ActionList1 для каждого пункта меню.

Задание по вариантам:

Задание 1. Организуйте построение 4-х рисунков с помощью пунктов главного меню.

Задание 2. Организуйте построение 2-х графиков функций с помощью пунктов контекстного меню.


 

А также другие работы, которые могут Вас заинтересовать

42970. Расчет оборудования для вакуум-кристаллизации галургического хлорида калия на БКПРУ-4 1.03 MB
  Количество испаренной воды в каждой ступени рассчитываем по уравнению теплового баланса где Gn–количество щелока поступающего в nую ступень ВКУ кг ч; Сщел –теплоемкость щелока кДж кгС; tн –tк –перепад температур в nой ступени ВКУ С; rn –удельная теплота парообразования на nой ступени ВКУ кДж кг. Сводная таблица материального баланса Состав Приход кг ч Расход кг ч KCl раствор 8455216 3578556 KCl твердый 487666 NCl раствор 7241179 7241179 NCl твердый H2O раствор 27354605 24168545 H2O испаренная ...
42971. Принципиальная схема высокоэффективного импульсного регулятора напряжения постоянного тока 1.34 MB
  Регуляторыстабилизаторы напряжения или других параметров электроэнергии в цепях постоянного тока выполняются преимущественно на основе полупроводниковых приборов. На выходное напряжение преобразователя электроэнергии влияют различные факторы: изменение входного напряжения и тока нагрузки температура окружающей среды и др. Поскольку они вызывают изменения выходного напряжения их в этом смысле называют возмущающими. Точность поддержания напряжения при воздействии различных возмущающих факторов характеризуется соответствующими параметрами...
42972. Разработка ремонтной мастерской с ремонтно-технологической документацией на ремонт узлов металлоконструкции автомобильного крана 1.23 MB
  Определение годового объема работ по ТО и Р ремонтной мастерской и распределение трудоемкости по видам работ 15 1. Определение суммарного объема работ по ТО и Р 15 1. Годовой объем работ по отдельным зонам ремонтной мастерской 16 1. Распределение трудоемкости ТО по видам работ 17 1.
42973. Проектирование консольно-фрезерного станка 155.12 KB
  Серийным называется такое производство, при котором изготовление изделий производится партиями или сериями, состоящими из одноименных, однотипных по конструкции и одинаковых по размерам изделий.
42974. Разработка самозагружающегося скипового подъемника, предназначенного для загрузки составляющих в растворосмеситель 363.31 KB
  Дипломный проект состоит из расчетно-пояснительной записки содержащий 5 основных разделов и состоящий из 72 страниц машинописного текста и графической части состоящей из 9 листов чертежей. В расчётно-пояснительной записке дан обзор существующей российской техники для получения бетонной и растворной смесей и способов загрузки составляющих в смесители произведен расчёт на прочность скипового подъёмника а также расчет экономической эффективности рассмотрен вопрос безопасности жизнедеятельности приводится список используемой для выполнения...
42975. Цех ремонта сельхозтехники 103.5 KB
  – площадь застройки промышленного здания в пределах внешнего периметра наружных стен. – полезная площадь промышленного здания. Лёгкий бетон=1000 кг м3 Расчёт вспомогательных помещений Показатели для расчёта: Количество работающих во всех сменах: А=А1А2=8436=120 А1 – мужчины А2 – женщины Количество работающих в наиболее многочисленной смене: В=В1В2=4921=70 В1 – мужчины В2 – женщины Количество служащих: С=15 Вид помещений Показатель Значение Примечание Все вспомогательные помещения Площадь м2 504...
42976. Двухэтажный 4-квартирный жилой дом со стенами из керамических камней 87.5 KB
  Объемнопланировочное решение здания. Конструктивные решения здания. Характеристика района строительства Место расположения будущего здания в городе Рязань. Климатические условия района строительства: среднегодовая температура 38 0С минимальная зафиксированная температура 410С максимальная зафиксированная температура 380С продолжительность периода со среднесуточной температурой  0С составляет 145 суток количество осадков за год 644мм средняя месячная относительная влажность воздуха: наиболее холодного месяца...
42977. Цех по ремонту автотранспорта 61.5 KB
  Введение Исходные данные Характеристики климатического района Характеристика рельефа Характеристики огнестойкости и взрыво-пожаробезопасности Технологическая часть Направленность технологического процесса Технологические зоны Грузоподъемное оборудование Технологические зоны с агрессивными средами Объемно-планировочные решения Параметры проектируемого здания Помещения и перегородки Ворота Окна Полы Кровля Расчет количества водоприемных воронок Фасад...
42978. Газоснабжение жилого микрорайона в Советском районе г. Астрахань с газификацией жилого много квартирного дома 86 KB
  При определении сметной стоимости строительства внутренних инженерных систем использованы Территориальные единичные расценки на строительные работы ТЕР. ТЕР2001 предназначены для определения прямых затрат в сметной стоимости строительства а также для расчётов за выполненные строительные работы. Сборники ТЕР2001 разработаны в базисном уровне цен Госстроя по состоянию на 1 января 2001 года. При расчёте сметной стоимости базовоиндексным методом приняты: а Объёмы работ для подсчета сметной стоимости работ определяются в разделе...