Одной из решаемых мной задач в разрабатываемом приложении было
создание выходной формы в Word. Пользователю потребовалось доба-
вить функцию масштабирования отображения документа (чтобы он
мог задавать любой масштаб, например, 100 % или 75 % или 50 %).
Как выбрать масштаб?
Масштаб отображения окна документа является свойством объекта View,
определяющего режимы отображения области окна. Программно можно
задать масштаб, определив его в процентах от нормальной величины. Для
этого используется свойство Percentage объекта Zoom. Данное свойство
имеет тип Integer и может принимать значения от 10 до 500.
Рассмотрим пример процедуры.
Изменение масштаба отображения документа
procedure TForml.Button3Click(Sender: TObject);
begin
W.ActiveWindow.ActivePane.View.Zoom.Percentage:=SpinEditl.Value;
end;
На рис. П2.2 представлен результат использования свойства Percentage.
Для того чтобы задать один из наиболее удобных и часто используемых
масштабов, можно воспользоваться свойством PageFit объекта Zoom. В этом
случае масштаб автоматически рассчитывается и устанавливается таким об-
разом, чтобы одна страница могла разместиться в активном окне целиком.
Этот режим задается путем записи значения константы wdPageFitFuUPage в
свойство PageFit. Чтобы автоматически задать другой масштаб отображения,
когда ширина отображаемой страницы приравнивается ширине окна, в
свойство PageFit необходимо записать значение константы wdPageFitBestFit.
Для отключения режима автоматического масштабирования в свойство
PageFit записывается константа wdPageFitNone. Реализация способа автома-
тического масштабирования представлена в виде следующей процедуры.
Рис. П2.2. Задаем масштаб отображения документа
Задание режима автоматического масштабирования
procedure TForml.PageFitChange(Sender: TObject);
begin
W.ActiveWindow.ActivePane.View.Zoom.PageFit:=PageFit.Itemlndex;
end;
Есть еще один способ, позволяющий косвенно задавать масштаб отображения
документа. Этот способ основан на использовании свойств PageColumns и
PageRows объекта Zoom, позволяющих задать количество одновременно
отображаемых страниц документа в одном окне. Значение свойства
PageColumns определяет количество страниц, размещенных по ширине ак-
тивного окна, а значение свойства PageRows — количество страниц, разме-
щенных по высоте активного окна. Таким образом, общее количество стра-
ниц будет определяться величиной PageColumns x PageRows. Очевидно, что
количество одновременно отображаемых страниц влияет на масштаб ото-
бражения страниц документа.
Задание количества одновременно отображаемых страниц по ширине окна
procedure TForml.SpinEdit2Change(Sender: TObject);
begin
if SpinEdit2.Value
W.ActiveWindow.ActivePane. View. Zoom. PageColumns :=SpinEdit2. Valuerend;
procedure TForml.SpinEdit3Change(Sender: TObject);
begin
if SpinEdit3.Value
W.ActiveWindow.ActivePane.View.Zoom.PageRows:=SpinEdit3.Value;
end;
Результат выполнения описанных процедур представлен на рис. П2.3.
Рис. П2.3. Задаем масштаб отображения путем задания количества страниц
|