Главная » Учебные материалы » Информатика » Лабораторные работы » ВолГУ » Несколько классов/семестров » Номер 10 » Вариант 6 » Компонент TMainMenu - Создайте проект «Овощи-фрукты» с пунктами меню, указанными в таблице. Для пунктов Овощи, Фрукты создайте вложенные подменю, каждое из которых содержит 2-4 пункта. Элементы меню Уменьшить, Увеличить оформите в виде пунктов-перекл
Для студентов ВолГУ по предмету ИнформатикаКомпонент TMainMenu - Создайте проект «Овощи-фрукты» с пунктами меню, указанными в таблице. Для пунктов Овощи, Фрукты создайте вложенные подменю, каждКомпонент TMainMenu - Создайте проект «Овощи-фрукты» с пунктами меню, указанными в таблице. Для пунктов Овощи, Фрукты создайте вложенные подменю, кажд
2024-02-08СтудИзба

Компонент TMainMenu - Создайте проект «Овощи-фрукты» с пунктами меню, указанными в таблице. Для пунктов Овощи, Фрукты создайте вложенные подменю, каждое из которых содержит 2-4 пункта. Элементы меню Уменьшить, Увеличить оформите в виде пунктов-переключате

Описание

Лабораторная работа №10. Вариант 6. ЛР Компонент TMainMenu
Цель работы: Познакомиться с компонентом TMainMenu. Научиться создавать меню для приложений.
/ задача из РК программа в Pascal Lazarus.
В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023

Условия для программы, под которые она выполнена:

6. Создайте проект «Овощи-фрукты» с пунктами меню, указанными в таблице:
ФайлОвощи-фруктыРазмер
ВыходОвощи Ctrl+OУменьшить
Фрукты Ctrl+FУвеличить
Для пунктов Овощи, Фрукты создайте вложенные подменю, каждое из которых содержит 2-4 пункта. Элементы меню Уменьшить, Увеличить оформите в виде пунктов-переключателей. Контекстное меню содержит все овощи-фрукты с линиями, разделяющими типы. Назначьте клавиши быстрого доступа в соответствии с подчеркнутыми в таблице буквами и комбинации «горячих» клавиш.

Программа в сделанном виде:












Показать/скрыть дополнительное описание

Лабораторная работа №10. Вариант 6. ЛР Компонент TMainMenu Цель работы: Познакомиться с компонентом TMainMenu. Научиться создавать меню для приложений. / задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023 Условия для программы, под которые она выполнена: 6. Создайте проект «Овощи-фрукты» с пунктами меню, указанными в таблице: ФайлОвощи-фруктыРазмер ВыходОвощи Ctrl+OУменьшить Фрукты Ctrl+FУвеличить Для пунктов Овощи, Фрукты создайте вложенные подменю, каждое из которых содержит 2-4 пункта. Элементы меню Уменьшить, Увеличить оформите в виде пунктов-переключателей.

Контекстное меню содержит все овощи-фрукты с линиями, разделяющими типы. Назначьте клавиши быстрого доступа в соответствии с подчеркнутыми в таблице буквами и комбинации «горячих» клавиш. Программа в сделанном виде: тэги лр Лабораторная работа №10 Компонент TMainMenu Цель работы: Познакомиться с компонентом TMainMenu. Научиться создавать меню для приложений. Теоритическая часть: Для создания главного меню в среде Lazarus используется компонент TMainMenu (вкладка Standard). Компонент не визуальный. Пункты меню содержатся в свойстве Items. Чтобы начать формирование пунктов меню достаточно дважды щелкнуть по компоненту на форме или нажать на кнопку с многоточием в свойстве Items компонента в инспекторе объектов.

Откроется специальный редактор меню, рис.1. Рис.1 В инспекторе объектов в свойство Caption введите имя пункта меню. Чтобы создать следующий пункт меню или подменю, установите курсор на текущий элемент меню и нажмите на правую клавишу мыши, рис.2. Выберите нужное действие, например, для создания подменю нажмите \"Создать подменю\", рис.3. Рис.2 Рис.3 Lazarus предоставляет возможность при создании меню применить шаблоны меню. Имеется три стандартных шаблона для меню \"Файл\", \"Правка\" и \"Справка\", рис.4. Рис.4 При создании меню имеется возможность вставки рядом с текстом пункта меню пиктограммы. Для этого поместите на форму компонент TImageList, заполните его соответствующими рисунками.

Затем в TMainMenu в свойстве Images укажите имя TImageList в программе. А при создании подпункта меню в свойстве ImageIndex укажите индекс соответствующего изображения. Также вы можете добавить горячие клавиши для данного пункта меню. Для этого служит свойство Shortcut. Вы можете прямо ввести нужное сочетание клавиш в поле ввода этого свойства или нажав на кнопку с многоточием, выбрать нужное сочетание из появившегося редактора выбора сочетаний клавиш, рис.5. Для создания разделительной линии между пунктами меню достаточно создать новый элемент и в свойство Caption ввести знак \"-\". Рис.5 Пример 1 Создание строки меню Почти все программы Windows позволяют управлять ими при помощи строки меню.

Если программа управляется через меню, ей, в принципе, не нужны никакие другие элементы управления. Строка меню обычно дает доступ ко всем существующим командам. Откройте в палитре компонентов вкладку Standard (Стандартные). Выберите компонент MainMenu (Строка меню) и щелкните на форме. Рис.5. Структура меню Структура меню нашей программы видна на рисунке (рис.1). В строке меню имеется два пункта: Файл и Выход. При щелчке на пункте Файл открывается меню, также содержащее два пункта: Рисунки и Выход. Если щелкнуть на пункте Рисунки, откроется вложенное меню, состоящее из трех пунктов, соответствующих разным рисункам. Эти пункты позволят показать выбранные рисунки на форме.

Если выбрать любой из пунктов Выход, работа программы завершается. Рис.6 Окно инспектор объектов Чтобы запустить редактор меню, дважды щелкните на значке меню на форме. Откроется диалоговое окно, озаглавленное так же, как объект меню, в нашем случае Form1.MainMenu1. Оно содержит пустое меню. Как только мы зададим текст пункта меню, система Lazarus тут же создаст нужный объект. Этот объект описывает не меню в целом, а только данный пункт меню. Щелкните в окне Инспектора объектов (рис. 6) напротив свойства Caption (Заголовок), введите текст пункта меню — «Файл» и измените свойство Name (Имя) на «File1», нажмите клавишу ENTER. Система Lazarus тут же создаст заготовку для нового пункта меню.

Для создания подменю или следующего раздела меню, необходимо щелкнуть правой клавишей мыши и воспользоваться соответствующей операцией. Другие пункты меню опишите в соответствии с таблицей 1: CaptionName ФайлFile1 РисункиPicture1 СолнечноN1 ПеременноN2 ПасмурноN3 ВыходExit2 ВыходExit1 Табл. 1. Пункт Рисунки должен открывать подменю для этого нажмите комбинацию клавиш CTRL + ВПРАВО. Система Lazarus сформирует нужную заготовку. Закройте окно редактора меню и убедитесь, что теперь строка меню появилась в основной форме программы. Приступим к программированию. Щелкните на пункте Выход в строке меню. В окне кода будет создана процедура-обработчик с именем Exit1Click: procedure TForm1.Exit1Click(Sender: TObject); begin end; Впишите в эту процедуру в блоке begin…end; один оператор: close; Теперь создадим обработчик для вложенного меню.

Это делается точно так же. Если щелкнуть на пункте Файл, откроется вложенное меню, в котором тоже можно выбрать пункт Выход. Будет создана процедура- обработчик Exit2Click. В нее тоже можно вписать оператор Close, и это будет правильно, но так не поступают, и вот почему. В нашей программе пункт Выход повторяется два раза, и нужно позаботиться о том, чтобы они работали совершенно одинаково. Нетрудно повторить оператор Close в двух местах, но что же делать, когда придется повторять многочисленные строки кода, а такое встречается часто. Поэтому применяют другой подход. Раз уже один раз создана процедура, выполняющая какую-то работу, то во втором случае мы не будем ее создавать, а вызовем исполнение ранее созданной процедуры.

Для этого выберем объект Exit2 в раскрывающемся списке в верхней части окна Инспектора объектов, перейдем на вкладку Evens (События), но вместо того чтобы создавать новую процедуру-обработчик, выберем уже существующую из раскрывающегося списка (Exit1Click). Как следствие, какой бы из пунктов Выход ни выбрал пользователь, завершение работы программы обеспечит одна и та же процедура. Если нужно будет изменить реакцию программы на выбор пункта Выход, то придется внести изменение только в одно место — в процедуру Exit1Click, а не в два разных. Откройте вкладку Additional (Дополнительные) палитры компонентов, выберите компонент Image (Изображение) и нарисуйте на форме область изображения.

Сразу же задайте для свойства Stretch (Растяжка) значение True (Да). Чтобы показать картинку в окне программы, используют оператор: Image1.Picture.LoadFromFile(\'Путь к файлу\'); Путь к файлу\' можно посмотреть с помощью программы Проводник Windows, для этого выберите файл и посмотрите его свойства. В строке Размещение указан путь к файлу. Например, C:Мои документыМои рисунки. К этой строке нужно добавить имя файла. Таким образом, получится оператор: Image1.Picture.LoadFromFile(\'C:Мои документыМои рисункиСолнечно.bmp\') Если файл картинки расположен в той же папке, что и файлы проекта, то в качестве \'Пути к файлу\' указывается имя файла: Image1.Picture.LoadFromFile(\'Солнечно.bmp\').

Выберите в строке меню на форме пункт Солнечно. Система Lazarus создаст процедуру N1Click для обработки этого пункта меню. Добавьте оператор в зависимости от расположения файла. Аналогичным образом создайте процедуры для обработки других пунктов меню Рисунки. Запустите программу, нажав клавишу F9. Строка меню и все команды работают. Любой из пунктов Выход завершает работу программы. Создаем контекстное меню Техника создания контекстного меню такая же, как и при создании строки меню. В палитре компонентов выберите на вкладке Standard (Стандартные) компонент PopupMenu (Контекстное меню). Щелкните на форме, чтобы создать значок объекта. Двойной щелчок на этом значке откроет редактор меню, работа с которым ведется так же, как и раньше.

С помощью уже знакомых приемов создайте три пункта меню: Солнечно, Переменно, Пасмурно. Запрограммировать команды контекстного меню несложно: они будут дублировать команды основного меню, поэтому можно использовать для одинаковых команд одну и ту же процедуру-обработчик. Выберите с помощью Инспектора объектов объект N4 и на вкладке Events (События) подключите к событию onclick (При щелчке) процедуру N1Click. Точно так же подключите к объекту N5 процедуру N2Click и к объекту N6 процедуру N3Click. Нужно запрограммировать операцию открытия контекстного меню. Объект PopupMenu содержит метод Popup, который открывает контекстное меню в точке с заданными экранными координатами.

Для этого достаточно описать обработчик события MouseDown (Нажатие кнопки мыши) для формы. Щелкните на форме вне имеющихся объектов, выберите в окне Инспектора объектов вкладку Events (События) и создайте обработчик для события onmousedown (При нажатии кнопки мыши). В процедуру-обработчик передаются локальные координаты указателя мыши. Экранные координаты, отсчитываются от верхнего левого угла экрана. А локальные координаты отсчитываются от левого верхнего угла формы. Система Lazarus предоставляет стандартный метод ClienToScreen, который выполняет нужное преобразование. Правда, данные передаются в этот метод в виде структуры TPoint, которая содержит два свойства: X и Y.

Поэтому нужно создать переменную типа TPoint, записать в нее локальные координаты, получить экранные координаты, а потом уже открыть контекстное меню. Процедура FormMouseDown будет выглядеть так: procedure TForm1.FormMouseDown (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var p: TPoint; begin p.X:=X; p.Y:=Y; p:=ClientToScreen(p); PopupMenu1.Popup(p.X, p.Y); end; Запустите программу, нажав клавишу F9. Щелкните на форме левой или правой кнопкой мыши. Убедитесь, что в обоих случаях открывается контекстное меню, содержащее два пункта — команды загрузки картинок. За....

Файлы условия, демо

Лабораторная работа No10 Компонент TMainMenu.pdf

Характеристики лабораторной работы

Учебное заведение
Номер задания
Вариант
Просмотров
4
Покупок
0
Размер
6,36 Mb

Список файлов

    Картинка-подпись
    Ваше экономие времени является моей ГЛАВНОЙ задачей! Если я Вам хоть чуть-чуть помог, пожалуйста, сделайте и мне приятное, оставьте 5 ЗВЁЗД и позитивный комментарий. Большое спасибо!

    Комментарии

    Поделитесь ссылкой:
    Цена: 349 руб.
    Расширенная гарантия +3 недели гарантии, +10% цены
    Рейтинг-
    0
    0
    0
    0
    0
    Поделитесь ссылкой:
    Сопутствующие материалы
    Свежие статьи
    Популярно сейчас
    А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
    Ответы на популярные вопросы
    Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
    Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
    Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
    Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
    Отзывы студентов
    Ставлю 10/10
    Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
    Лучшая платформа для успешной сдачи сессии
    Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
    Студизба ван лав ❤
    Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
    Отличный сайт
    Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
    Маленький отзыв о большом помощнике!
    Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
    Студ. Изба как крупнейший сборник работ для студентов
    Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
    Спасательный островок
    Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
    Всё и так отлично
    Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
    Отзыв о системе "Студизба"
    Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
    Отличный помощник
    Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
    Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
    Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
    Спасибо за шикарный сайт
    Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
    Популярные преподаватели
    Добавляйте материалы
    и зарабатывайте!
    Продажи идут автоматически
    5160
    Авторов
    на СтудИзбе
    439
    Средний доход
    с одного платного файла
    Обучение Подробнее