Многострочные окна редактирования Memo и Richedit 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Многострочные окна редактирования Memo и Richedit



Компоненты Memo и RichEdit (см. пример на рис. 10) являются окнами ре­дактирования многострочного текста. Они снабжены многими функциями, свойственными большинству редакторов.

 

 

Рис. 10. Примеры компонентов Memo и RichEdit

В них предусмотрены типичные комбинации «горячих» клавиш: Ctrl-C — копирование выделенного текста в буфер обмена Clipboard (команда Сору), Ctrl-X — вырезание выделенного текста в буфер Clipboard (команда Cut), Ctrl-V -вставка текста из буфера Clipboard в позицию курсора (команда Paste), Ctrl-Z — от­мена последней команды редактирования.

В компоненте Memo формат (шрифт, его атрибуты, выравнивание) одинаков для всего текста и определяется свойством Font. Если вы сохраните в файле текст, введенный или отредактированный пользователем, то будет создан текстовый файл, содержащий только символы и не содержащий элементов форматирования. При последующем чтении этого файла в Memo формат будет определяться теку­щим состоянием свойства Font компонента Memo, а не тем, в каком формате ранее вводился текст.

Компонент RichEdit работает с текстом в обогащенном формате RTF. При же­лании изменить атрибуты вновь вводимого фрагмента текста вы можете задать свойство Sel Attributes. Это свойство типа TText Attributes. Например, введите на форму компонент RichEdit, диалог выбора шрифта FontDialog и кнопку Button, которая позволит пользо­вателю менять атрибуты текста. В обработчик щелчка кнопки можно вве­сти текст:

if FontDialogl.Execute then

RichEditl.SelAttributes.Assign(FontDialogl.Font); RichEditl.SetFocus;

Запустите приложение и увидите, что вы можете менять атрибуты текста, вы­полняя отдельные фрагменты различными шрифтами, размерами, цветами, сти­лями. Устанавливаемые атрибуты влияют на выделенный текст или, если ничего не выделено, то на атрибуты нового текста, вводимого начиная с текущей позиции курсора (позиция курсора определяется свойством SelStart).

Мы рассмотрели основные отличия Memo и RichEdit. Теперь остановимся на общих свойствах этих окон редактирования.

Свойство ScrollBars определяет наличие полос прокрутки текста в окне. По умолчанию ScrollBars = ssNone, что означает их отсутствие. Пользователь может в этом случае перемещаться по тексту только с помощью курсора. Можно задать свойству ScrollBars значения ssHorizontal, ssVertical или ssBoth, что будет соот­ветственно означать наличие горизонтальной, вертикальной или обеих полос про­крутки.

Основное свойство окон Memo и RichEdit — Lines, содержащее текст окна в виде списка строк и имеющее тип TStrings. Начальное значение текста можно установить в процессе проектирования, нажав кнопку с многоточием около свойст­ва Lines в окне Инспектора Объектов. Перед вами откроется окно редактирования списков строк. Вы можете редактировать или вводить текст непосредственно в этом окне, или нажать кнопку CodeEdiior и работать в обычном окне Редактора Кода. В этом случае, завершив работу с текстом, выбери­те из контекстного меню, всплывающего при щелчке правой кнопкой мыши, команду Close Page и ответьте утвердительно на вопрос, хотите ли вы сохранить текст в соответствующем свойстве окна редактирования.

Во время выполнения приложения вы можете заносить текст в окно редакти­рования с помощью методов свойства Lines типа TStrings.

Весь текст, представленный одной строкой типа String, внутри которой испо­льзуются разделители типа символов возврата каретки и перевода строки, содер­жится в свойстве Text.

Доступ к отдельной строке текста вы можете получить с помощью свойства Strings[Index: Integer]. Индексы, как и везде в Delphi, начинаются с 0. Так что Ме-mol.Lines.Strings[0] — это текст первой строки.

Свойство только для чтения Count указывает число строк в тексте.

Для очистки текста в окне надо выполнить процедуру Clear. Этот метод отно­сится к самому окну, а не к его свойству Lines.

Для занесения новой строки в конец текста окна редактирования можно вос­пользоваться методами Add или Append свойства Lines. Для загрузки текста из файла применяется метод LoadFromFile. Сохранение текста в фале осуществляет­ся методом SaveToFile.

Свойство CaretPos указы­вает на запись, поле X которой содержит индекс символа в строке, перед которым расположен курсор, а поле Y — индекс строки, в которой находится курсор. Таким образом, учитывая, что индексы начинаются с 0, значения Memol.CaretPos.Y+1 и Memol.Caret-Pos.X+1 определяют соответственно номер строки и символа в ней, перед которым расположен курсор.

 



Поделиться:


Последнее изменение этой страницы: 2016-12-28; просмотров: 177; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.225.173 (0.006 с.)