Многострочные редакторы Memo и RichEdit

 

Многострочные редакторы предназначены для ввода и форматирования текста в процессе выполнения приложения. Многострочные редакторы схожи по своим свойствам с компонентом Edit, но отличаются тем, что позволяют работать с многострочным текстом.

 

Компонент Memo расположен на странице Standard, компонент RichEdit – на странице Win32.

 

Основные свойства многострочных редакторов

Свойство

Назначение

Lines

В Инспекторе объектов – для создания текста редактора

ScrollBars

Для определения наличия полос прокрутки текста

MaxLength

Максимально допустимое количество символов, вводимых пользователем. По умолчанию 0, и длина текста не ограничена

WantReturns

Разрешение ввода новой строки от нажатия клавиши Enter

WantTabs

Разрешение вводить в текст символы табуляции

WantWrap

Допустимость переноса для длинных строк

 

Основное свойство многострочных редакторов – Lines (типа TStrings) содержит текст окна в виде списка строк. Начальный текст можно ввести в процессе разработки приложения. Для этого надо выбрать свойство Lines и щёлкнуть в области его значения. Появится окно String List Editor, в которое можно занести текст.

 

В процессе выполнения приложения можно:

-        вводить текст из файла с помощью метода LoadFromFile; например:

 

Memo1.Lines.LoadFromFile(examp1.txt’);

 

-        сохранять текст из окна в текстовом файле с помощью метода SaveToFile, например:

 

Memo2.Lines.SaveToFile(’examp2.txt’);

 

-        заносить или считывать текст из строки с заданным номером с помощью свойств Lines и Strings[Index:Integer]. Начальный номер строки равен 0. Например:

 

Memo1.Lines.Strings[0]:=’Пример1’;

Memo1.Lines[1]:=’Пример2’;

 

-        добавить строку в окно можно с помощью метода Add или Append, например:

 

Memo1.Lines.Add(’Пример3’);

 

Многострочные редакторы имеют те же возможности редактирования текста, что и однострочный Edit, но содержат ряд строк. В них предусмотрены выделение текста и типичные сочетания «горячих клавиш»:
 

Ctrl+C, Ctrl+Ins – копирование выделенного текста в буфер ClipBoard;

Ctrl+X – вырезание выделенного текста в буфер ClipBoard;

Ctrl+Del – удаление выделенного текста;

Ctrl+V, Shift+Ins – вставка текста из буфера ClipBoard;

Ctrl+Z – отмена последней команды редактирования.

 

Для доступа ко всему содержимому редактора используется неопубликованное в Инспекторе объектов свойство Text типа string. Для работы с отдельными строками – свойство Lines типа Strings.

Основным назначением многострочных редакторов является ввод и изменение текста как пользователем с клавиатуры, так и с помощью текста программы. Но их можно использовать и для отображения нередактируемого текста.

В компоненте Memo формат (шрифт, выравнивание) одинаков для всего текста и определяется его свойством Font. Компонент RichEdit работает в формате RTF. Для изменения формата вводимого текста надо поместить на форму компонент FontDialog – диалога выбора шрифта. Затем в процессе выполнения приложения из текста программы подключить для компонента RichEdit свойство SelAttributes – выбора атрибутов шрифта методом Assign.