Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Delphi_1курс лекции / Тема 04 Компоненты ввода и отображения.doc
Скачиваний:
54
Добавлен:
23.03.2015
Размер:
194.56 Кб
Скачать

Компонент RichEdit(многострочное окно редактирования в форматеRtf)

Страница Win32

Компонент TRichEdit представляет собой многофункциональное средство редактирования текстов, позволяющее работать с обогащенным форматом .rtf, т.е. выбирать различные атрибуты форматирования для разных фрагментов текста. В этом основное отличие TRichEdit от более простого компонента TMemo, в котором атрибуты форматирования одинаковы для всего текста.

SelAttributes:TTextAttributes– Описывает характеристики выделенного текста. Это свойство в свою очередь имеет подсвойства: Color (цвет), Name (имя шрифта), Size (размер), Style (стиль) и ряд других. Если в данный момент в компоненте выделен какой-то фрагмент текста, то характеристики относятся к шрифту этого фрагмента. Если выделения нет, то характеристики шрифта относятся к текущей позиции курсора (позиция определяется свойством SelStart), т.е. к тексту, который будет вводиться, начиная с этой позиции.

Класс TTextAttributes свойства SelAttributes подобен классу TFont шрифта. Например, если приложение имеет компонент RichEdit и диалог выбора шрифта FontDialog1 типа TFontDialog и кнопку Button, то следующий код позволит пользователю менять атрибуты вновь вводимого или выделенного текста:

if FontDialog1.Execute then

with RichEdit1.SelAttributes do begin

Color:=FontDialog1.Font.Color;

Name:=FontDialog1.Font.Name;

Size:=FontDialog1.Font.Size;

Style:=FontDialog1.Font.Style;

end;

RichEdit1.SetFocus;

В приведенном коде присваивается поочередно значение каждого свойства. Но этот текст можно кардинально сократить, воспользовавшись тем, что объекты SelAttributes

и Font совместимы по типу. Поэтому можно присвоить сразу все свойства одного объекта другому с помощью методаAssign (метод Assign копирует один объект в другой, создавая копию всех данных объекта):

FontDialog1.Font.Assign(RichEdit1.SelAttributes);

if FontDialog1.Execute then

RichEdit1.SelAttributes.Assign(FontDialog1.Font);

RichEdit1.SetFocus;

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

Запустив приложение вы сможете менять атрибуты выделенного или вновь вводимого текста.

DefAttributes:TTextAttributes– Атрибуты форматирования, используемые по умолчанию.

Эти атрибуты действуют до того момента, когда изменяются атрибуты в свойстве SelAttributes. Но значения атрибутов в DefAttributes сохраняются и в любой момент эти значения могут быть методом Assign присвоены атрибутам свойства SelAttributes, чтобы вернуться к прежнему стилю.

SelLength:IntegerОпределяет количество выделенных символов в строке

SelStart:IntegerУказывает позицию первого выделенного символа в тексте или, если выделения нет, то позицию курсора

SelText:StringТекст, выделенный в окне

Paragraph:TParaAttributes; –Свойство, определяющее форматирование текущего абзаца.

Методы

Основные методы такие же как и для TEdit

function FindText(const SearchStr: string; StartPos, Length: Integer; Options: TSearchTypes): Integer; – Ищет в тексте заданный фрагмент, в частности, может искать его как целое слово и с учетом или без учета регистра