300______________________________________________Глава 4

Prntr->BeginDoc() ;

Prntr->Canvas->TextOut(10,10,"Я печатаю через объект Printer");

Prntr->Canvas->Draw((Prntr->PageWidth — Imagel->Picture->

Bitmap->Width)/2, 40, Imagel->Picture->Bitmap);

Prntr->EndDoc() ;

Первый оператор этого кода использует функцию Printer, которая создает
глобальный объект типа TPrinter. В том же операторе создается указатель на этот
объект Prntr.

Следующий оператор задает размер шрифта канвы принтера. Затем функция ;

BeginDoc запускает задание на печать. Следующий оператор посылает* на канву
принтера с помощью метода канвы TextOut, начиная с точки с координатами (10,
10), текст «Я печатаю через объект Printer». Следующий оператор методом Draw ри-
сует на канве принтера изображение. При этом изображение выравнивается по го-
ризонтали на середину страницы. Координата верхней строны изображения зада-
ется равной 40.

В заключение метод EndDoc вызывает печать текста и изображения и останавли-
вает задание на печать.

Печатающий объект Printer не производит автоматического переноса строк и
разбиения текста на страницы. Поэтому печать длинных текстов с помощью объ-
екта Printer требует достаточно сложного программирования. Проще это делать '
описанными ранее способами или с помощью изложенной в следующем разделе
системы QuickReport.

4.8.3 Подготовка и печать отчетов с помощью QuickReport —
компоненты QuickRep, QRSubDetail, QRLabel, QRExpr,
QRSysData. QRMemo, QRRichText, QRShape, QRImage

На странице QRepor палитры компонентов C++Builder имеется множество эле-
ментов (см. таблицу 4.5), предназначенных для подготовки и печати отчетов, с по-
мощью системы QuickReport.

Таблица 4.5. Компоненты системы QuickReport в C++Builder

Пиктограмма Компонент           Описание

QuickRep             Используется для введения в приложе-
!     llslll      (отчет)                ние средств печати отчетов QuickReport

И;      QRSubDetail     Используется для компоновки в отчет
|      (детали)       дополнительных данных

Hi QRStringsBand        Используется для компоновки в отчет   ;

(полоса текста)_____ дополнительных текстов             |

гэ»     QRBand              Используется для построения отчетов |
(полоса)              путем размещения на нем печатаемых |
компонентов

p—i     QRChildBand          Используется для создания дочерних
ri-„      (дочерняя полоса)      полос, которые могут содержать другие

—~"                          компоненты QuickRep и полосы

BQRGroup             Используется для группировки данных

(группировка)

——————————————————————————— ———————————————————————————

•! QRLabel              Используется для размещения текста в
(метка)               отчете