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

Изучение Delphi

  Все выпуски  

Изучение Delphi


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


Изучение Delphi

Delphi для всех!


Здравствуйте дорогие подписчики.

Ну что начнём изучение.

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

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

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

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

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

Основное свойство окон Memo и RichEdit - Lines, содержащее текст окна в виде списка строк и имеющее тип TStrings. Начальное значение текста можно установить в процессе проектирования, нажав кнопку с многоточием около свойства Lines  в окне Инспектора Объектов. 

Доступ к отдельной строке текста вы можете получить с помощью свойства String[Index:Inyeger]. Индексы, как и везде в Delphi, начинаются с 0. Так что Memo1.Lines.Strings[0]- это текст первой строки. Учтите, что если окно редактирования изменяется в размерах при работе с приложением и свойство WordWrap=true, то индекс строк будут изменяться при переносах строк, так что в этих случаях индекс мало о чём говорит.

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

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

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

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

Обработчик щелчка на кнопке может иметь вид:

Memo1.Clear;

Memo1.Lines.Add('Характеристика');

Memo1.Lines.Add('сотрудник'+Edit1.text); 

Memo1.SetFocus;

Загрузка в окно Memo1 текста из файла (например, хранящейся в файле характеристики сотрудника) может осуществляться командой

Memo1.Lines.LoadFromFile('text.txt');

Сохранение текста в файле может осуществляться командой

Memo1.Lines.SaveToFile('text.txt');

Счастливо! До следующего урока............  Знание-это ваше сила

Хорошего настроения.

С уважением ведущий рассылки, Артур.

Желаю удачи.

 Архив рассылки находится здесь http://subscribe.ru/archive/comp.soft.prog.456/

 

Пишите свои статьи, предложения, вопросы ,Ваш Артур- mailto: hp@ufacom.ru

Пока!

 Подпишите своих друзей

Рассылки Subscribe.Ru
Изучение Delphi

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

В избранное