Область редактирования. Компонент Memo
Область редактирования (Memo) используется для редактирования длинных строк или объемных текстовых документов. Компонент располагается на вкладке Standart. Основным свойством этого компонента является свойство Lines:TString уже знакомого нам класса TString, которое имеет набор методов, позволяющих загружать текстовый документ из файла и выгружать его в файл. Методы класса TString приведены в таблице:
Метод | Описание |
Add | Добавить строку |
Insert | Вставить строку |
Delete | Удалить строку |
LoadFromFile | Загрузить текст из файла в Memo, в качестве параметра методу передается путь к файлу. |
SaveToFile | Сохранить текст Memo в файле, в качестве параметра методу передается путь к файлу. |
Основные методы компонента Memo приведены в таблице:
Метод | Описание |
Clear | Удалить все строки из Memo. |
CopyToClipBoard | Копировать выделенный текст во внутренний буфер Windows. |
CutToClipBoard | Вырезать выделенный текст во внутренний буфер Windows. |
PasteFromClipBoard | Вставить выделенный текст из внутреннего буфера Windows. |
Контекстное меню. Компонент PopupMenu
Компонент PopupMenu, находящийся на вкладке Standart, позволяет создать контекстное меню, т.е. меню, которое открывается то правой кнопке мыши. Двойной щелчок на компоненте открывает встроенный построитель меню, очень похожий та построитель меню для компонента MainMenu. Названия пунктов меню также вводятся в свойство caption. Связь контекстного меню с соответствующим интерфейсным элементом, например, областью редактирования Memo, выполняется через свойство PopupMenu интерфейсного элемента.
Например, создадим несложное приложение, которое позволяет по нажатию правой кнопки мыши на области редактирования загружать файлы в Memo и сохранять содержимое Memo в файлах. Для этого поместим в область формы следующие объекты Memo1:TMemo и PopupMenu1:TPopupMenu. Свяжем их через свойство PopupMenu объекта Memo1.
С помощью встроенного построителя меню зададим названия пунктов контекстного меню: «Загрузить файл», «Сохранить в файле».
На пункт меню «Загрузить файл» напишем следующий обработчик:
Memo1.Lines.LoadFromFile(‘D:\Temp\d1.txt’);
На пункт меню «Сохранить в файле» напишем следующий обработчик:
Memo1.Lines.SaveToFile(‘D:\Temp\d1.txt’);
Недостатком этого приложения является отсутствие возможности выбрать файл в диалоге при его загрузке и возможность задать в диалоге папку и имя файла при его сохранении. Для этого следует использовать стандартные диалоговые окна Windows для открытия и сохранения файла. Такую возможность предоставляют компоненты, расположенные на вкладке Dialogs.
Диалоговые окна Windows
На вкладке Dialogs располагается набор компонентов, реализующий стандартные диалоговые окна Windows. Основные компоненты приведены в таблице:
Название компонента | Описание |
OpenDialog | Диалог открытия файла |
SaveDialog | Диалог сохранения файла |
FontDialog | Диалог задания шрифта |
ColorDialog | Диалог задания цвета |
FindDialog | Диалог задания параметров поиска в файле |
PrinterSetupDialog | Диалог задания установок принтера |
PrintDialog | Диалог задания печати |
Рассмотрим более подробно диалоги OpenDialog и SaveDialog, FontDialog и ColorDialog.
Основные свойства OpenDialog и SaveDialog
Свойство | Описание |
FileName | Имя файла, в случае OpenDialog – это имя файла выбранного пользователем, в случае SaveDialog – это имя, под которым файл следует сохранить |
Filter | Фильтр позволяет увидеть только файлы определенного типа в окне диалога, путем задания расширения файлов. Например, только текстовые с расширением *.txt. |
InitialDir | Позволяет задать начальный директорий для диалога |
Title | Заголовок окна диалога |
Для компонента FontDialog основным свойством является свойство Font, в котором будет находиться шрифт, выбранный пользователем. Для компонента ColorDialog основным свойством является свойство color, которое будет содержать цвет, выбранный пользователем.
Основным методом для всех этих видов компонентов является метод Execite, который выводит диалог на экран и возвращает истину, если пользователь выбрал кнопку «Открыть» или «Сохранить» в окне диалога, и ложь, если пользователь выбрал кнопку «Отмена» в окне диалога.
Теперь, вооружившись этим знанием, улучшим приложение, созданное в предыдущем пункте «Контекстное меню. Компонент PopupMenu». Для этого поместим в область формы компоненты вкладки Dialogs: OpenDialog – для открытия файла в диалоге, SaveDialog – для сохранения файла в диалоге, ColorDialog – для выбора цвета области редактирования Memo, FontDialog – для выбора шрифта текста, загруженного в область Memo.
Внешний вид окна на этапе проектирования может быть таким:
В контекстном меню создадим следующие пункты меню: «Открыть файл», «Сохранить файл», «Изменить шрифт», «Изменить цвет».
При выборе пункта меню «Открыть файл» работает программный код:
if OpenDialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
При выборе пункта меню «Открыть файл» работает программный код:
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
При выборе пункта меню «Изменить шрифт» работает программный код:
if FontDialog1.Execute then
Memo1.Font:=FontDialog1.Font;
При выборе пункта меню «Изменить цвет» работает программный код:
if ColorDialog1.Execute then
Memo1.Color:=ColorDialog1.Color;
Задание для самостоятельной работы
Создать приложение, реализующее возможности простого текстового редактора по работе с текстовыми файлами: создание файла, открытие файла, сохранение файла, сохранение с другим именем, изменение шрифта, изменение цвета фона, и др. Снабдить редактор главным меню, кнопочной панелью, реализующей основные функции текстового редактора.