Многострочное окно редактирования текстов в обогащенном формате .rtf, позволяющее производить выбор цвета, шрифта, поиск текста и т.д.
Страница библиотеки Win32
Класс TRichEdit
Иерархия TObiect — TPersistent — TComponent — TControl — TWinControl — TCustomEdit — TCustomMemo — TCustomRichEdit
Модуль stdctrls
Компонент RichEdit является средством редактирования текстов, которое позволяет работать с форматом .rtf, т.е. дает возможность выбрать различные существенные свойства объекта форматирования для всевозможных фрагментов текста. Это является основным отличием RichEdit от компонента Memo, у которого имеющиеся атрибуты форматирования станут одинаковыми для всего текста.
В Окне редактирования имеются множество функций, которые свойственны большинству редакторов. К примеру, в нем предусмотрены стандартные сочетания горячих клавиш: Ctrl-C — скопировать выделенный текст в Clipboard — буфер обмена(команда Copy), Ctrl-X — вырезать выделенный текст в буфер, Clipboard (команда Cut), Ctrl-V — вставить текст из буфера Clipboard в позицию курсора (команда Paste), Ctrl-Z — отменить последнюю команду редактирования.
У Свойства Lines, которое доступно как в период составления проекта, так и в период его выполнения, есть в наличии множество свойств и методов типа TStrings). Свойство Text содержит в себе весь текст. Имееются свойства времени выполнения SelLength, SelStart, SelText, которые определят длину выделенного текста, а также позицию перед первым символом выделенного текста и сам выделенный текст. Если остутствует выделенный текст, то свойство SelStart однозначно определяет текущее положение курсора.
При желании изменить атрибуты вновь вводимого фрагмента текста вы можете задать свойство SelAttributes. Это свойство типа TText Attributes, которое в свою очередь имеет подсвойства: Color (цвет), Name (имя шрифта), Size (размер), Style (стиль) и ряд других. Пример, если у приложения имеются компонент RichEdit и диалог FontDialogl (выбора шрифта) , то следующий код позволит пользователю менять атрибуты вновь вводимого или выделенного текста:
if FontDialogl.Execute then with RichEditl.SelAttributes do begin
Color:=FontDialogl.Font.Color;
Name:=FontDialogl.Font.Name;
Size:=FontDialogl.Font.Size;
Style:=FontDialogl.Font.Style; end;
RichEditl.SetFocus;
В приведенном коде дает возможность присваивать поочередно значение каждого свойства. Но этот текст можно сильно сократить, потому что типы объектов SelAttributes и Font являются совместимыми, поэтому можно присвоить сразу все свойства одного объекта другому:
if FontDialogl.Execute then
RichEditl.SelAttributes.Assign(FontDialogl.Font); RichEditl.SetFocus;
Свойство DefAttributes, которое содержит в себе атрибуты по умолчанию. Эти атрибуты продолжают действовать до тех пор, пока не изменятся атрибуты в свойстве SelAttributes. Но значения атрибутов в DefAttributes сохраняются, поэтому всегда имеется возможность
в любой момент этим значениям быть методом Assign присвоены атрибутам свойства SelAttributes, чтобы вернуться к прежнему стилю.
Paragraph типа TParaAttributes отвечает за выравнивание, отступы и т.д. в пределах текущего абзаца.
Тип Paragraph имеет несколько свойств:
Alignment | Определяет выравнивание текста. |
Firstlndent | Число пикселов отступа красной строки. |
Numbering | Управляет вставкой маркеров, как в списках. |
Leftlndent | Отступ в пикселах от левого поля. |
Rightlndent | Отступ в пикселах от правого поля. |
TabCount | Количество позиций табуляции. |
Tab | Значения позиций табуляции в пикселах. |
Значения подсвойств свойства Paragraph можно задавать только в процессе выполнения приложения, например, в событии создания формы или при нажатии какой-нибудь кнопки. Значения подсвойств свойства Paragraph относятся к тому абзацу, в котором находится курсор. Например, каждый из следующих операторов осуществит соответственное выравнивание текущего абзаца:
RichEditl.Paragraph.Alignment:=taLeftJustify; // Влево
RichEditl.Paragraph.Alignment:=taCenter; // По центру
RichEditl.Paragraph.Alignment:=taRightJustify; // Вправо
Следующий оператор приведет к тому, что текущий абзац будет отображаться как список, т.е. с маркерами:
RichEditl.Paragraph.Numbering:=nsBullet;
Уничтожение списка в текущем абзаце осуществляется оператором
RichEditl.Paragraph.Numbering:=nsNone;
Свойство Modified, которое доступно только во время выполнения, показывает, было ли редактирование текста в окне. Если вам необходимо использовать это свойство, то в момент начала работы пользователя с текстом Modified следует установить в false. Тогда при последующем обращении к этому свойству можно по его значению (true или false) узнать, было или нет редактирование.
Свойство Wordwrap, равное true, указывает на то, что допускается перенос длинных строк. Установка свойства ReadOnly в true задает текст только для чтения. Свойство MaxLength задает максимально возможную длину вводимого текста. Если MaxLength = 0, то длина текста не имеет ограничений. Свойства WantReturns и WantTab определяют доступность ввода пользователем в текст символов перевода строки и табуляции (TAB).
Свойство Scrollbars задает будут ли в наличии полосы прокрутки текста в окне. По умолчанию свойство ScrollBars равно ssNone, что означает отсутствие полос прокрутки. Пользователь может перемещаться в данном случае по тексту только при помощи курсора. Свойство ScrollBars может принимать: ssHorizontal, ssVertical или ssBoth, что означает присудствие горизонтальной прокрутки, вертикальной прокрутки или обеих полос одновременно.
Свойство CaretPos указывает на запись, поле X которой содержит индекс символа в строке, перед которым распологается курсор, а поле Y — индекс строки, в которой находится курсор. Итак, учитывая, что индексы начинаются с 0, значения Memol.CaretPos.Y+1 и Memol.CaretPos.Х+1 определяют соответственно номер строки и символа в ней, перед которым располагается курсор.
Свойства Align и Anchors позволяют адаптировать размер окна RichEdit к размеру окна приложения, выбранного пользователем.
. аналог компонента TMemo в C# символ отступа красной строки в делфи delphi работа с richedit richedit delphi Делфи Richedit find