Кент Рейсдорф. BORLAND C++BUILDER. Раздел 3

Кент Рейсдорф. BORLAND C++BUILDER. Страница 385


Печать через QuickReport

Программы, работающие с базами данных, могут использовать компонент QuickReport для печати отчетов. Я упоминаю здесь QuickReport лишь потому, что мы говорим о печати. Это один из компонентов для доступа к базам данных, и я оставлю рассмотрение фактической реализации этого типа печати до той главы, где QuickReport будет описан более подробно.

Сложный способ печати

Не позволяйте заголовку этого раздела ввести вас в заблуждение. Печать в действительности не является таким трудным делом, просто она требует некоторого количества времени и организации. Давайте сначала рассмотрим некоторые вещи, о которых вы должны знать, чтобы выполнять печать из своих приложений. После этого мы займемся собственно написанием кода.

Что такое контекст устройства?

Контекст устройства (DC — device context) — это что-то вроде гри­фельной доски, на которой могут рисовать программы Windows. Лучшим термином было бы слово холст (canvas). На этом холсте можно нарисовать текст, линии, растровые изображения, прямоугольники, эллипсы и т.д. Тип линии, который используется для рисования в контексте устройства, зависит от текущего пера, выбранного в DC. Текущий цвет заливки и образец заливки определяются кистью, которая в настоящий момент выбрана в контексте устройства. Управление контекстами устройства должно выполняться доста­точно аккуратно. Число DC, доступных Windows, ограничено, и вы должны быть внимательными и освобождать контекст устройства, как только закон­чили с ним работать. Кроме того, если вы правильно не удалите объекты, которые выбираете в контексте устройства, ваша программа вызовет утечку памяти и может даже оставить Windows в опасном состоянии. Как вы уже могли понять, работа с DC может быть довольно сложной.

Web-дизайн (с) 2010 All rights reserved