
- •Лабораторная работа №1 Delphi. Форма, компоненты Button и Memo
- •Лабораторная работа №2 Delphi. Формы. Рисование линий и прямоугольников
- •Лабораторная работа №3 Delphi. Рисование графиков
- •Лабораторная работа №4 Delphi. Компоненты Image, OpenPictureDialog, SavePictureDialog. Рисование и сохранение графической информации
- •Лабораторная работа №5 Delphi. Компоненты MainMenu, Memo Создание и сохранение текстовой информации
- •Создание структуры меню.
- •Справка. Если не добавить что-либо в шаблон обработчика события, то он и соответствующий заголовок метода в объявлении класса tForm1 будут удалены из текста программы при её подготовке к выполнению.
- •Добавление переменных, представляющих текущее состояние процесса обработки данных.
- •Создание обработчиков событий.
- •Лабораторная работа №6 Delphi. Компоненты диалога, RichEdit. Создание, редактирование, изменение стиля, сохранение и поиск текстовой информации
- •1. Меню
- •2. Работа с файлами
- •3. Шаблоны и действия
- •4. Панель инструментов
- •Лабораторная работа №7 Delphi. Компоненты ListBox, ComboBox, StringGrid Создание и использование
- •Лабораторная работа №8 Delphi. Страничные раскладки. Создание их и использование
- •Лабораторная работа №9 Общие представления. Графика
2. Работа с файлами
Открытие и сохранение файла сделаем с помощью стандартных диалогов TOpenDialog и TSaveDialog (вспомните аналогичные диалоговые окна TOpenPictureDialog и TSavePictureDialog, которые мы использовали в графическом редакторе).
Добавьте на форму компоненты TOpenDialog и TSaveDialog. В обработчиках события onClick соответствующих пунктов меню организуйте загрузку и сохранение файлов с расширением RTF так же, как и для рисунков (не забудьте задать свойства DefaultExt, Filter и Title у диалогов). Открыть:
if OpenDialog1.Execute then
Editor.Lines.LoadFromFile(OpenDialog1.FileName);
Сохранить
if SaveDialog1.Execute then
Editor.Lines.SaveToFile(SaveDialog1.FileName);
3. Шаблоны и действия
Если нажать правую кнопку мыши в редакторе меню, мы увидим список всех команд в контекстном меню:
Простейшие операции — вставка нового пункта (клавиша Insert) и удаление текущего (Delete). Если нажать Ctrl+«вправо», добавляется подменю (сейчас эта возможность неприменима). Пункт Select menu позволяет выбрать нужное меню, если такой компонент на форме не один.
Несколько элементов контекстного меню включают слово Template — шаблон, заготовка. В Delphi есть готовые шаблоны, которые можно использовать и свободно настраивать для каждого случая.
Вызовите редактор меню и выберите пункт Insert from Template из контекстного меню.
Вы увидите список всех встроенных шаблонов:
Можно догадаться, что для меню Файл (File) и Правка (Edit) уже есть готовые шаблоны, правда, на английском языке. Что касается меню Файл, оно у нас уже готово и настроено, а вот меню Правка мы добавим из шаблона.
Добавьте из шаблона меню Правка (Edit menu). Если оно оказалось слева от меню Файл, перетащите его мышкой в нужное место. Удалите все лишние элементы кроме Undo (Отмена), Cut (Вырезать), Copy (Копировать) и Paste (Вставить). Измените название Edit на русский вариант Правка.
Теперь можно заменить все английские названия на русские и построить обработчики для каждого пункта меню.
В Delphi существуют так называемые действия (Actions) — невидимые компоненты специального типа, которые выполняют стандартные операции, например, работают с буфером обмена. Для работы с такими действиями мы будем использовать компонент TActionList (список действий) из группы Standard.
Добавьте на форму компонент TActionList. Вызовите его редактор двойным щелчком мыши.
Вы увидите, что список действий, который используются в программе, пуст — ведь мы ничего не добавляли.
Щелкните по стрелке справа от единственной активной кнопки. Вы увидите два пункта меню: New Action (создание нового своего действия) и New Standard Action (добавить стандартное действие, именно это нам и нужно).
Выберите пункт меню New Standard Action. В появившемся окне выделите (при нажатой клавише Ctrl) 4 нужных действия из группы Edit (Правка): TEditCut (Вырезать), TEditCopy (Копировать), TEditPaste (Вставить), TEditUndo (Отмена).
В окне Structure хорошо видно, что новые действия называются EditCut1, EditCopy1, EditPaste1 и EditUndo1.
Выбирая добавленные действия в окне Structure, в их свойствах Caption и Hint замените все английские надписи на русские.
Теперь нужно назначить действия пунктам меню, выбрав нужное действие в списке свойства Actions.
Назначьте нужные действия пунктам выпадающего меню Правка. Обратите внимание, что их названия автоматически поменялись на русские. Почему?
Теперь добавим в программу контекстное меню, которое будет появляться при нажатии на правую кнопку мыши над полем редактора.
Поместите на форму компонент TPopupMenu и добавьте в него команды для работы с буфером обмена. Названия очередного элемента меню вводить не требуется, просто выберите нужное действие в свойстве Action.
Меню готово, но пока не «привязано» к какому-то объекту. Для такой привязки используется свойство PopupMenu того компонента, для которого контекстное меню должно работать.
Для компонента Editor установите свойство PopupMenu=PopupMenu1. Проверьте работу контекстного меню.