Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2 семестр.doc
Скачиваний:
42
Добавлен:
27.05.2015
Размер:
777.73 Кб
Скачать

8.4. Печать графических изображений

8.4.1. Печать форм

Для печати копии формы так, как она выглядит на экране, следует вызвать метод Print формы. Для печати изображения формы следует расположить на ней объект PrintDialog, а в обработчик события OnClick кнопки или команды меню ввести следующие операторы: if PrintDialog1.Execute then Print;

Для печати определенной формы необходимо указать ее имя, например: AboutBox.Print;.

Метод Print формы сначала копирует клиентскую область текущего окна во внеэкранное растровое изображение, а затем печатает его с помощью функции Windows API StretchDIBits.

Свойство PrintScale определяет режим масштабирования печатаемой копии во время работы программы или из окна Object Inspector и имеет значения:

poNone. Масштабирования нет. Размеры печатаемой копии зависят от разрешения принтера. При использовании этого значения для печати форм на лазерных принтерах выводятся неразличимые, крошечные окна.

poPrintToFit. Масштабирование до размеров страницы. Печатаемая форма заполняет страницу в одном направлении (обычно горизонтально).

poProportional. Масштабирование, зависящее от разрешающей способности принтера (количества пикселей на дюйм). Печатаемая копия является наиболее приемлемой.

8.4.2. Печать диаграмм

Самый простой способ вывода диаграмм на печать – использовать метод Print формы, содержащей диаграмму. Однако качество воспроизведения диаграмм с его помощью неудовлетворительное.

В компоненте TChart предусмотрено несколько собственных методов печати, которые генерируют диаграммы гораздо более высокого качества, чем метод печати формы. Самым простым из них является метод Print.

Chart1.Print;

При выполнении этой строки программы диаграмма будет напечатана с использованием полных значений ширины и высоты печатной страницы при разрешении экрана, действующего по умолчанию. Однако печать при таком разрешении экрана часто не подходит для приложений, включающих диаграммы. Поэтому нужно изменить это разрешение, а следовательно, и качество печатаемых диаграмм. Компонент TChart имеет динамическое свойство PrintResolution, которое можно установить равным целому значению в диапазоне – 100 ÷ 0, где 100 означает, что диаграмма печатается при максимальном разрешении принтера, а 0 – при установленном разрешении экрана.

Chart1.PrintResolution = PrintResScroll.Position;

Используя методы PrintPartial и PrintRect, можно также задать прямоугольник для диаграммы с целью ее масштабирования на печатной странице.

С помощью метода PrintPartialCanvas на одной странице можно напечатать сразу несколько диаграмм. Метод позволяет вывести одну или несколько диаграмм прямо на канву принтера и, в отличие от описанных методов печати, автоматически не запускает задание печати и не выталкивает напечатанную страницу.

Чтобы подготовить несколько диаграмм для печати на одной странице, сначала для каждой диаграммы определяется объект класса TRect, т.е. прямоугольник, который описывает положение диаграммы на странице. Затем для каждой диаграммы вызывается метод PrintPartialCanvas. В качестве аргументов он принимает элемент типа TCanvas и элемент типа TRect.

Пример печати диаграммы Сhat1

procedure TForm1.Button1Click(Sender: TObject);

var R: TRect;

begin

Printer.BeginDoc;

R:= Rect(0,0,Printer.PageWidth - 1, round((Printer.PageHeight - 1) / 3));

try

Chart1.PrintPartialCanvas(Printer.Canvas, R);

finally

Printer.EndDoc;

end;

end;