Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на Delphi. От новичка до профессионала! 20.2.4 Многострочные окна редактирования Memo и Richedit


Информационный Канал Subscribe.Ru


Здравствуйте, уважаемые читатели :-) Извините за такой долгий перерыв, всё-таки не хватает сил бесплатно пахать :-) вот и приходится делать передышки, потому что других много.

 

Недавно наткнулся www.wreckedexotics.com. Обязательно для захода! Разбитые в мусор Ferrari, Lamborghini, McLaren, Audi TT и прочие прелести :-)

 

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

 

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

 

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

 

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

 

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

 

Компонент RichEdit работает с текстом в обогащенном формате RTF. При желании изменить атрибуты вновь вводимого фрагмента текста вы можете задать свойство SelAttributes. Это свойство типа TTextAttributes, которое в свою очередь имеет подсвойства: Color (цвет), Name (имя шрифта), Size (размер), Style (стиль) и ряд других. Например, введите на форму компонент RichEdit, диалог выбора шрифта FontDialog и кнопку 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 совместимы по типу. Поэтому можно присвоить сразу все свойства одного объекта другому:

 

If FontDialog1.Execute  then

RichEdit1.SelAttributes.Assign (FontDialog1 .Font);

RichEdit1.SetFocus;

 

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

 

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

 

Свойство DefAttributes доступно только во время выполнения. Поэтому его атрибуты при необходимости можно задавать, например, в обработчике события OnCreate.

 

За выравнивание, отступы и т.д. в пределах текущего абзаца отвечает свойство Paragraph типа ТРаrаAttributes. Этот тип в свою очередь имеет ряд свойств...

 

продолжение следует...

 

 

Размещение рекламы на сайте или в рассылке в виде текста, более 4000 подписчиков. antonxp2004@hotmail.com

 

www.hostingsystem.ru - качественный хостинг без простоев, хостинг для компаний, круглосуточная поддержка по телефону, e-mail, а также из личной панели управления пользователя, неограниченный трафик.

 

Сайт рассылки http://mydelphi7.narod.ru, на котором есть архив рассылки, также гостевая книга, переводчик.

Копировать, размещать, продавать представленную информацию запрещается.

 

Rambler's Top100



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное