Область редактирования. Компонент 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.

Внешний вид окна на этапе проектирования может быть таким:

Область редактирования. Компонент Memo - student2.ru

В контекстном меню создадим следующие пункты меню: «Открыть файл», «Сохранить файл», «Изменить шрифт», «Изменить цвет».

При выборе пункта меню «Открыть файл» работает программный код:

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;

Задание для самостоятельной работы

Создать приложение, реализующее возможности простого текстового редактора по работе с текстовыми файлами: создание файла, открытие файла, сохранение файла, сохранение с другим именем, изменение шрифта, изменение цвета фона, и др. Снабдить редактор главным меню, кнопочной панелью, реализующей основные функции текстового редактора.

Наши рекомендации