Лист рабочей книги можно "поделить" на печатные страницы с помощью
линий разрыва страницы, обозначающих, каким образом информация листа
будет перенесена на печатные страницы при печати документа. Для того
чтобы отобразить эти линии, достаточно переключить "вид" документа в
режим "разметка страницы".
В приложениях Delphi это можно сделать путем изменения значения свой-
ства View объекта ActiveWindow (см. следующую процедуру).
Переключение вида документа в режим разметка страницы
const
xlNormalView=l;
xlPageBreakPreview=2;
procedure TOKBottomDlg3.ViewChange(Sender: TObject);
begin
case View.Itemlndex of
0:Forml.E.ActiveWindow.View:=xlNormalView;
1:Forml. E.ActiveWindow.View:^xlPageBreakPreview;
end;
end;
Используя константы xlNormalView и xlPageBreakPreview, изменяем вид до-
кумента и преобразуем его из обычного в тот вид, на котором отображена
разметка страниц. На рис. 15.1 показан внешний вид листа рабочей книги
в режиме "разметка страницы".
Рис. 15.1. Лист рабочей книги в режиме "разметка страницы"
Используя свойства и методы коллекций HPageBreaks и VPageBreaks листа
рабочей книги, мы получаем доступ и возможность манипулировать размет-
кой листа. Элементы этих коллекций содержат информацию о разрывах
страниц и позволяют изменять или удалять их. Добавление новых элементов
в коллекцию осуществляется с помощью метода Add, аргументом которого
является ссылка на ячейку, до которой вставляется разрыв. Следующая
процедура позволяет добавить разрыв в точке расположения ячейки с коор-
динатами 10:30, после чего загрузить в компонент ListBoxl номера всех эле-
ментов коллекции, в том числе и вновь созданного.
Добавление разрыва страницы
procedure TOKBottomDlg3.Button2Click(Sender: TObject);
var a_:integer;
begin
HPageBreaks.Add(Before:=Forml.E.ActiveSheet.Cells[10,30]);
ListBoxl.Items.Clear;
for a_:=l to HPageBreaks.Count do ListBoxl.Items.Add(inttostr(a_));
ListBoxl.Itemlndex:=0;
end;
Для задания точки разрыва можно использовать не только ссылку на ячейку
Cells, но и ссылку на область ячеек Range. Тогда первый оператор описан-
ной выше процедуры будет выглядеть так:
HPageBreaks.Add (Before:=Forml.E.ActiveSheet.Range[Range.Text]);
Здесь объект Range.Text задает адрес области ячеек. Результат добавления
новой точки разрыва страницы в обоих случаях будет одним и тем же
(рис. 15.2).
Для создания и манипулирования вертикальными разрывами используются
элементы коллекции VPageBreaks. Методы этой коллекции идентичны ме-
тодам коллекции HpageBreaks. Рассмотрим еще одно свойство элементов
коллекций VpageBreaks и HpageBreaks. Это свойство определяет положение
линий разрыва и позволяет изменять его. Свойство Location является ссыл-
кой на ячейку. Изменение ссылки с одной на другую ячейку приведет к из-
менению положения линии разрыва.
Перенос линии разрыва страницы
procedure TOKBottomDlg3.ButtonLocationClick(Sender: TObject);
var a_:integer;
begin
HPageBreaks.Item[1].Location:=Forml.E.ActiveSheet.Range[Range.Text];
VPageBreaks.Itern[1].Location:=Forml.E.ActiveSheet.Range[Range.Text];
end;
Использование этой процедуры позволит изменять границы листа, выводи-
мого на печать. После того как мы определили области, которые будут раз-
мещаться на отдельных печатных страницах, перейдем к настройке свойств
самой страницы.
Рис. 15.2. Добавляем горизонтальный разрыв |