На этом шаге мы рассмотрим небольшой пример, иллюстрирующий использование перечисленных на предыдущем шаге свойств.
Создадим новый документ и с помощью объекта PageSetup определим его основные параметры. Для этого используем форму в виде диалога (рисунок 1). После создания диалога его элементы управления будут содержать информацию об ориентации страницы, ее размерах, полях и стиле вербального выравнивания текста. Используя эти же элементы управления, мы можем изменить основные параметры страницы, например, ориентацию (книжная/альбомная), стиль вертикального выравнивания, размер бумаги и едичины левого и верхнего полей. Рассмотрим следующую процедуру.
procedure TForm1.Button6Click(Sender: TObject); //Заполнение полей характеристиками текущего документа begin PS:=W.ActiveDocument.PageSetup; CheckBox1.Checked:=PS.LineNumbering.Active; ComboBox1.ItemIndex:=PS.Orientation; ComboBox2.ItemIndex:=PS.VerticalAlignment; Edit1.Text:=IntToStr(PS.PageWidth); Edit2.Text:=IntToStr(PS.PageHeight); Edit3.Text:=IntToStr(PS.TopMargin); Edit4.Text:=IntToStr(PS.LeftMargin); end;
На рисунке 1 представлена форма, в элементах которой отображается считанная из свойств объекта PageSetup активного документа информация о параметрах страницы активного документа.
Рис.1. Параметры страницы документа Word
Изменим некоторые параметры страницы. Например, установим альбомную ориентацию и добавим вторую колонку для вывода текста, установив ее ширину в 200 пикселей. Для этой цели используем свойства и методы коллекции TextColumns объекта PageSetup. После изменения ориентации листа с книжной на альбомную или наоборот, считаем новые значения ширины ц высоты страницы, а также новые величины полей.
procedure TForm1.ComboBox1Change(Sender: TObject); //Изменение ориентации страницы begin PS.Orientation:=ComboBox1.ItemIndex; Edit1.Text:=IntToStr(PS.PageWidth); Edit2.Text:=IntToStr(PS.PageHeight); Edit3.Text:=IntToStr(PS.TopMargin); Edit4.Text:=IntToStr(PS.LeftMargin); end; procedure TForm1.Button1Click(Sender: TObject); //Добавление колонки begin if PS.TextColumns.count<2 then PS.TextColumns.Add(200); end;
Вторая процедура добавляет новую текстовую колонку, если число колонок меньше двух. После выполнения этих манипуляций страница будет выглядеть так, как показано на рисунке 2.
Рис.2. Измененная страница документа Word
Вот полный текст приложения.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ComObj; type TForm1 = class(TForm) CheckBox1: TCheckBox; Label1: TLabel; ComboBox1: TComboBox; Label2: TLabel; ComboBox2: TComboBox; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; UpDown1: TUpDown; UpDown2: TUpDown; UpDown3: TUpDown; UpDown4: TUpDown; Button5: TButton; Button6: TButton; procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var W:Variant; PS:Variant; {$R *.dfm} procedure TForm1.Button4Click(Sender: TObject); //Выход begin W.Quit; Close; end; procedure TForm1.Button5Click(Sender: TObject); //Создание нового документа begin W:=CreateOleObject('Word.Application'); W.Visible:=True; W.Documents.Add; end; procedure TForm1.Button6Click(Sender: TObject); //Заполнение полей характеристиками текущего документа begin PS:=W.ActiveDocument.PageSetup; CheckBox1.Checked:=PS.LineNumbering.Active; ComboBox1.ItemIndex:=PS.Orientation; ComboBox2.ItemIndex:=PS.VerticalAlignment; Edit1.Text:=IntToStr(PS.PageWidth); Edit2.Text:=IntToStr(PS.PageHeight); Edit3.Text:=IntToStr(PS.TopMargin); Edit4.Text:=IntToStr(PS.LeftMargin); end; procedure TForm1.ComboBox1Change(Sender: TObject); //Изменение ориентации страницы begin PS.Orientation:=ComboBox1.ItemIndex; Edit1.Text:=IntToStr(PS.PageWidth); Edit2.Text:=IntToStr(PS.PageHeight); Edit3.Text:=IntToStr(PS.TopMargin); Edit4.Text:=IntToStr(PS.LeftMargin); end; procedure TForm1.Button1Click(Sender: TObject); //Добавление колонки begin if PS.TextColumns.count<2 then PS.TextColumns.Add(200); end; end.
В заключение приведем возможные значения ориентации страницы и вертикального выравнивания.
Константа | Значение |
---|---|
wdOrientPortrait | 0 (книжная) |
wdOrientLandscape | 1 (альбомная) |
Константа | Значение |
---|---|
wdAlignVerticalTop | 0 |
wdAlignVerticalCenter | 1 |
wdAlignVerticalJustify | 2 |
wdAlignVerticalBottom | 3 |
На следующем шаге мы рассмотрим печать документа.