КОМПОНЕНТЫ ДЛЯ РАБОТЫ С ТЕКСТОМ
Компонент: FontDialog Компонент FontDialog вызывает диалоговое окно выбора атрибутов шрифта. В нем пользователь может выбрать имя шрифта, его стиль (начертание), размер и другие атрибуты. {Приведенный оператор вызывает диалог выбора атрибутов шрифта и, если пользователь произвел выбор, то значения всех выбранных атрибутов, содержащиеся в свойстве FontDialog1.Font, присваиваются Memo1.Font. Шрифт в окне редактирования немедленно изменится. } if FontDialog1.Execute then Memo1.Font.Assign(FontDialog1.Font); Основное свойство компонента Font, в котором вы можете задать при желании начальные установки атрибутов шрифта и в котором вы можете прочесть значения атрибутов, выбранные пользователем в процессе диалога. Свойства MaxFontSize и MinFontSize устанавливают ограничения на максимальный и минимальный размеры шрифта. Если значения этих свойств равны 0 (по умолчанию), то никакие ограничения на размер не накладываются.
Компонент: FontDialog Если вы установите в компоненте FontDialog1 опцию fdApplyButton, то можете написать обработчик события OnApply: Memo1.Font.Assign(FontDialog1.Font); Тогда пользователь может наблюдать изменения в окне Memo1, нажимая в диалоговом окне кнопку Применить и не прерывая диалога. Если в качестве окна редактирования использовать RichEdit, то можно предоставить пользователю выбирать атрибуты шрифта для выделенного фрагмента текста или для вновь вводимого текста. Тогда выполнение команды меню Шрифт может осуществляться операторами: if FontDialog1.Execute then RichEdit1.SelAttributes.Assign(FontDialog1.Font); Можно разрешить пользователю изменять шрифт не только отдельных компонентов, но и всех компонентов и надписей на форме. Это осуществляется оператором: if FontDialog1.Execute then Font.Assign(FontDialog1.Font); В этом операторе свойство Font без ссылки на компонент подразумевает шрифт формы.
Компонент: RichEdit RichEdit работает с текстом в обогащенном формате RTF. При желании изменить атрибуты вновь вводимого фрагмента текста можно задать свойство SelAttributes. Это свойство имеет подсвойства: Color (цвет), Name (имя шрифта), Size (размер), Style (стиль) и ряд других. 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; //перевод фокуса в компонент RichEdit1 Использование диалога выбора шрифта FontDialog позволит пользователю менять атрибуты текста:
Компонент: RichEdit Воспользовавшись тем, что объекты SelAttributes и Font совместимы по типу, можно присвоить сразу все свойства одного объекта другому: if FontDialog1.Execute then RichEdit1.SelAttributes.Assign(FontDialog1.Font); RichEdit1.SetFocus; В компоненте имеется также свойство DefAttributes, содержащее атрибуты по умолчанию. Эти атрибуты действуют до того момента, когда изменяются атрибуты в свойстве SelAttributes. Свойство DefAttributes доступно только во время выполнения. Поэтому его атрибуты при необходимости можно задавать, например, в обработчике события OnCreate. За выравнивание, отступы и т.д. в пределах текущего абзаца отвечает свойство Paragraph. Оно в свою очередь имеет ряд подсвойств:
Компонент: RichEdit Значения подсвойств свойства Paragraph можно задавать только в процессе выполнения приложения, например, в событии создания формы или при нажатии какой-нибудь кнопки. Значения подсвойств свойства Paragraph относятся к тому абзацу, в котором находится курсор. Например, каждый из следующих операторов осуществит соответственное выравнивание текущего абзаца: Следующий оператор приведет к тому, что текущий абзац будет отображаться как список, т.е. с маркерами: RichEdit1.Paragraph.Numbering:=nsBullet; Уничтожение списка в текущем абзаце осуществляется оператором: RichEdit1.Paragraph.Numbering:=nsNone; RichEdit1.Paragraph.Alignment:=taLeftJustify; // Влево RichEdit1.Paragraph.Alignment:=taCenter; // По центру RichEdit1.Paragraph.Alignment:=taRightJustify;// Вправо Свойство ScrollBars определяет наличие полос прокрутка текста в окне. По умолчанию ScrollBars = ssNone, что означает их отсутствие.
Компонент: RichEdit Основное свойство RichEdit Lines, содержащее текст окна в виде списка строк и имеющее тип TStrings. Начальное значение текста можно установить в процессе проектирования, нажав кнопку с многоточием около свойства Lines в окне Инспектора Объектов. Доступ к отдельной строке текста можно получить с помощью свойства Strings[Index: Integer]. Индексы, как и везде в Delphi, начинаются с 0. Так что RichEdit1.Lines.Strings[0] это текст первой строки. Свойство только для чтения RichEdit1.Lines.Count указывает число строк в тексте. Для очистки текста в окне надо выполнить процедуру RichEdit1.Clear. Для занесения новой строки в конец текста окна редактирования можно воспользоваться методами Add или Append свойства Lines. Для загрузки текста из файла применяется метод LoadFromFile. Сохранение текста в фале осуществляется методом SaveToFile.
Компонент: RichEdit Пусть, например, в приложении имеется окно редактирования Edit1, в котором пользователь вводит имя сотрудника, и есть кнопка, при щелчке на которой в окно RichEdit1 должна занестись шапка характеристики этого сотрудника, после чего пользователь может заполнить текст характеристики. Обработчик щелчка на кнопке может иметь вид: RichEdit1.Clear; RichEdit1.Lines.Add ('Х А Р А К Т Е Р И С Т И К А'); RichEdit1.Lines.Add('Сотрудник '+Edit1.Text) ; RichEdit1.SetFocus; Загрузка в окно RichEdit1 текста из файла (например, хранящейся в файле характеристики сотрудника) может осуществляться командой RichEdit1.Lines.LoadFromFile ('text.rtf'); Сохранение текста в файле может осуществляться командой RichEdit1.Lines.SaveToFile('text.rtf');
Компонент: PrintDialog Компонент PrintDialog вызывает диалоговое окно печати. В нем пользователь может выбрать принтер и установить его свойства, указать число копий и последователъность их печати, печатать в файл или непосредственно на принтер, выбрать печатаемые страницы или печатать только выделенный фрагмент. Компонент PrintDialog не осуществляет печать. Он только позволяет пользователю задать атрибуты печати. А сама печать должна осуществляться программно!!! Рассмотренные ранее диалоговые компоненты возвращали одно свойство или один объект Font, содержащий множество свойств. В отличие от них компонент PrintDialog возвращает ряд свойств, характеризующих выбранные пользователем установки.
Компонент: PrintDialog Свойства компонента PrintDialog: Перед вызовом диалога желательно определить, сколько страниц в печатаемом тексте, и задать параметры MaxPage и MinPage максимальный и минимальный номера страниц. В противном случае пользователю в диалоговом окне не будет доступна кнопка «Страницы с... по…»
Компонент: PrintDialog Кроме того следует определить множество опций в свойстве Options компонента PrintDialog: Обеспечить печать текста компонента RichEdit1 можно следующим образом: if PrintDialog1.Execute then RichEdit1.Print(Печать документа…'); Причем задание на печать получает имя «Печать документа …». Печать воспроизводит все заданные особенности форматирования. Перенос строк и разбиение текста на страницы производится автоматически.
Компонент: PrinterSetupDialog Компонент PrinterSetupDialog, вызывает диалоговое окно установки принтера. Это единственный диалоговый компонент, не имеющий никаких специфических свойств, которые надо было бы устанавливать или читать. Диалог выполняет операции по установке принтера, на котором будет производиться печать, и задании его свойств. Этот диалог не возвращает никаких параметров.