
- •Лабораторная работа №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 Общие представления. Графика
Лабораторная работа №6 Delphi. Компоненты диалога, RichEdit. Создание, редактирование, изменение стиля, сохранение и поиск текстовой информации
1. Меню
Сейчас мы напишем несложный текстовый редактор, причем будем стараться максимально использовать готовые возможности Delphi и писать минимум кода.
Создайте новый проект с формой и сохраните его в папке Редактор под именем Editor.bdsproj. Измените заголовок формы на «Текстовый редактор».
В качестве поля для ввода текста применим компонент TRichEdit из группы Win32, который позволяет редактировать и сохранять документы в формате RTF (Rich Text Format, расширенный текстовый формат).
Добавьте на форму компонент TRichEdit, присвойте ему имя Editor и установите выравнивание alClient.
В редакторе TRichEdit можно обращаться к каждой строке текста через список строк Lines. Например, Editor.Lines.Count — это число строк, Editor.Lines[0] — самая верхняя строка, в Editor.Lines[Editor.Lines.Count-1] — самая последняя.
Чтобы у окна редактора были полосы прокрутки, нужно изменить свойство ScrollBars. По умолчанию оно равно ssNone (нет полос прокрутки), кроме этого возможны значения ssVertical (только вертикальная), ssHorizontal (только горизонтальная) и ssBoth (обе).
Очистите поле ввода, удалив все строки из свойства Lines. Установите свойство ScrollBars равным ssBoth.
Если вам нужен простейший текстовый редактор (как Блокнот), который не позволяет менять шрифт и форматировать абзацы, можно использовать компонент TMemo. Основные приемы работы с ним такие же, как и с TRichEdit.
Добавьте на форму компонент TMainMenu. Для первого пункта введите имя FileMenu (свойство Name)' и текст Файл (свойство Caption).
Если теперь щелкнуть на окне редактора меню, вы увидите новый пустой пункт верхнего меню и пустой пункт подменю. Их свойства настраиваются точно также. Если вместо текста написать знак «минус», в меню будет линия-разделитель.
Свойство ShortCut — это сочетание клавиш, которое воспринимается программой как выбор этого элемента меню (при этом в меню вообще не нужно заходить!). Например, сочетание Ctrl+N обычно используется для создания нового документа. Для этого нужно записать в значение свойства ShortCut текст «Ctrl+N».
Добавьте подпункты выпадающего меню Файл: Создать (имя NewMI, клавиши Ctrl+N) Открыть (имя OpenMI, клавиши Ctrl+O) Сохранить (имя SaveMI, клавиши Ctrl+S) линия-разделитель Выход (имя ExitMI, клавиши Ctrl+Q).
При выборе элемента меню (любым способом) возникает событие OnClick, для которого можно назначить обработчик. Например, при выборе пункта Выход нужно закрыть форму (и завершить работу программы):
Close;
В данном случае вызывается метод Close формы. Поскольку этот вызов стоит в методе самой формы, имя формы указывать не нужно, хотя, в принципе, можно было бы написать Form1.Close.
При создании нового файла нужно очистить все строки редактора:
Editor.Lines.Clear;
Назначьте обработчики события OnClick для пунктов Выход и Создать. Запустите программу и проверьте работу меню.