Многострочные окна редактирования Memo и RichEdit (Standard)

 

Компоненты Memo и RichEdit являются окнами редактирования

многострочного текста.

В компонентеMemo формат (шрифт, его атрибуты, выравнивание)

одинаков для всего текста и определяется свойством Font. Если вы сохраните в

файле текст, введенный или отредактированный пользователем, то будет

создан текстовый файл, содержащий только символы и не содержащий

элементов форматирования. При последующем чтении этого файла в Memo

формат будет определяться текущим состоянием свойства Font компонента

Memo, а не тем, в каком формате ранее вводился текст.

КомпонентRichEdit работает с текстом в обогащенном формате RTF. При

желании изменить атрибуты вводимого фрагмента текста можно задать

свойствоSelAttributes.

Это свойство типа TTextAttributes, которое в свою очередь имеет

подсвойства: Color (цвет), Name (имя шрифта), Size (размер), Style (стиль) и ряд

других. Например, введите на форму компонент RichEdit, диалог выбора

шрифта FontDialog со страницы Dialogs и кнопку Button, которая позволит

пользователю менять атрибуты текста. В обработчик щелчка кнопки введите

текст:

if (FontDialogl->Execute())

RichEditl->SelAttributes->Assign(FontDialogl->Font) ;


 

RichEditl->SetFocus( );

При запуске приложения можно менять атрибуты текста, выполняя

отдельные фрагменты различными шрифтами, размерами, цветами, стилями.

Устанавливаемые атрибуты влияют на выделенный текст или, если ничего не

выделено, то на атрибуты нового текста, вводимого начиная с текущей

позиции курсора (позиция курсора определяется свойством SelStart).

В компоненте имеется также свойствоDefAttributes, содержащее

атрибуты по умолчанию. Эти атрибуты действуют до того момента, когда

изменяются атрибуты в свойстве SelAttributes. Но значения атрибутов в

DefAttributes сохраняются и в любой момент эти значения могут быть

методомAssign присвоены атрибутам свойства SelAttributes, чтобы

вернуться к прежнему стилю. Например:

RichEdit->SelAttributes->Assign;

Свойство DefAttributes доступно только во время выполнения. Поэтому

его атрибуты при необходимости можно задавать, например, в обработчике

события OnCreate.

RichEdit->DefAttibutes;

За выравнивание, отступы и т.д. в пределах текущего абзаца отвечает

свойствоParagraph типа TparaAttributes. Этот тип в свою очередь имеет ряд

свойств:

Alignment - Определяет выравнивание текста. Может принимать

значения taLeftJustify (влево), taCenter (по центру) или taRightJustify

(вправо)

FistIndent - Число пикселей отступа красной строки

LeftIndent - Отступ в пикселах слева

RightIndent - Отступ в пикселах справа

 

Свойства Paragraph можно задавать только в процессе выполнения

приложения, например, в событии создания формы или при нажатии какой -

нибудь кнопки. Значения подсвойств свойства Paragraph относятся к тому

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

операторов осуществит соответственное выравнивание текущего абзаца:

RichEditl->Paragraph->Alignment=tabeftJustify;// Влево


RichEditl->Paragraph->Alignment=ttaCenter;


// По центру


RichEditl->Paragraph->Alignment=taRightJustify; // Вправо

 

Следующий оператор приведет к тому, что текущий абзац будет отображаться как список, т.е. с

маркерами:

RichEditl->Paragraph->Numbejring = nsBullet;