Манипулируя свойствами диапазона, мы получаем возможность обращаться к коллекциям объектов или отдельным объектам, находящимся внутри данного диапазона.
Список абзацев (IParagraphs) и абзац документа (IParagraph)
Интерфейс IParagraphs организует доступ к коллекции всех абзацев документа. Отдельный абзац IParagraph в первую очередь призван обеспечить
максимум удобств при форматировании текста. За выравнивание текста в абзаце отвечает свойство:
property Alignment : Integer;
Свойство Alignment может принимать значения в диапазоне от 0 до 8, основные из которых представлены в табл. 25.10.
Paragraph:=Doc.Paragraphs. Item(1);
Paragraph.Alignment:=2; // wdAlignParagraphRight - вправо
Межстрочный интервал в абзаце назначается множителем, значения которого устанавливаются в свойстве:
property LineSpacingRule : integer;
Допустимый диапазон значений - от 0 до 5 (табл. 25.11).
При необходимости изменить предопределенные значения межстрочного интервала воспользуйтесь свойством:
property LineSpacing : Single;
И укажите нужный размер. При этом свойство LineSpacingRule автоматически примет значение 5 (wdLineSpaceMultiple - множитель). Отступы текста слева и справа определяются свойствами:
property LeftIndent : single; property RightIndent : single;
Отступ красной строки:
property FirstLinelndent : single;
Для того чтобы заключить абзац в рамку, обратитесь к объекту Border и включите его.
property Border : IBorder;
WordParagraph.Borders.Enable := True;
Списки
Форматирование текста в виде списка, как правило, применяется для выделения однотипных перечислений. В Microsoft* Word различают три основных типа списков: маркированный, нумерованный и многоуровневый (рис. 25.2).
Создание списка
Для того чтобы программным образом преобразовать несколько абзацев в список, потребуется сделать следующие шаги:
• Объединить нужные абзацы в диапазон.
• Обратиться к свойству диапазона ListFo rmat.
• Применить к объекту IListFormat метод ApplyBulletDefault().
Рассмотрим следующий листинг:
var Word, Doc, Paragraph, Range, ListFormat : OleVariant; begin
Word:=CreateOleObject('Word.Application');
Doc:=Word.Documents.ADD;
Paragraph:=Doc.Paragraphs.Add;
Paragraph.Range.InsertBefore('06beAMHMTb в диапазон нужные абзацы.'); Paragraph:=Doc.Paragraphs.Add;
Paragraph.Range.InsertBefore('0братитbся к свойству диапазона ListFormat.');
Paragraph:=Doc.Paragraphs.Add;
Paragraph.Range.InsertBefore('Примeнитb к объекту IListFormat метод ApplyBulletDefault.'); {Задание диапазона из трех абзацев} Range:=Doc.Range(Doc.Paragraphs.Item(1).Range.Start, Doc.Paragraphs.Item(3).Range.End); {С помощью свойства диапазона ListFormat преобразуем абзацы в список} ListFormat:= Range.ListFormat; ListFormat.ApplyBulletDefault; Word.Visible:=true; end;
Создав документ, мы вставили в него три абзаца (по одной строке в каждом), а затем объединили их в область Range. Далее при помощи свойства ListFor-mat определили способ форматирования абзацев в виде списка.