Сабклассинг (subclassing) - контроль сообщений окон путем модификации (взятия под контроль) оконной процедуры последних. Сабклассинг подразумевает использование изменённой оконной процедуры до оригинальной, что позволяет нам создать сколь угодно заготовок оконных процедур. Хотя на практике обычно используется только одна.
В VCL на компонентном уровне сабклассинг реализуется достаточно просто и быстро. Его использование предпочтительней, чем использование сабклассинга на WinAPI (разумеется, при программировании с VCL) - всегда, если возможно, делайте сабклассинг именно через VCL. Для сабклассирования оконного компонента необходимо расширить его функциональность путём добавления обработчика желаемого сообщения, либо через перекрытие оконной процедуры компонента.
Сабклассинг особенно удобен, когда дело касается изменения одного окна, класс которого не совпадает с другими окнами, подлежащими сабклассированию. А что, если нам нужно засабклассировать сотню Edit'ов? Сабклассинг здесь будет громоздким. Решением этой проблемы является суперклассинг.
QuickReport 2.0 включает следующие свойства: • Основанный на группах генератор отчетов; • Визуальное создание отчета; • Подлинный Delphi VCL компонент, 100% написанный на Object Pascal; • Чрезвычайно точное позиционирование данных в отчете; • Совместимость с Delphi 1.0, 2.0 и 3.0; • От 100 до 350 Кбайт памяти для производства печати, в зависимости от использованных свойств;
QuickReport не имеет своих собственных средств для сортировки данных. Данные всегда печатаются в том порядке, в каком они поступают от источника данных. Для изменения порядка печати данных укажите индекс в компоненте TTable присоединенном к отчету. Если такого индекса не существует, то добавьте нужный или используйте компонент TQuery. При печати отчета с помощью компонента TQuery задайте порядок сортировки в запросе. Смотрите соответствующую документацию по написанию SQL запроса.
Для печати текста в отчете вы должны добавить печатные компоненты в ваш отчет. Имеется два основных компонента TQRLabel и TQRDBText. Компонент TQRLabel используется для печати статического текста, текста и чисел рассчитываемых во время генерации отчета. Для печати статического текста просто разместите компонент TQRLabel на соответствующей секции и укажите текст в свойстве Caption. Текст появится в соответствующей позиции секции и будет печататься всякий раз, как печатается данная секция. Вы можете изменить шрифт и цвет шрифта путем задания соответствующих свойств Fonts. QuickReport поддерживает любые TrueType или PostScript шрифты.
После размещения компонента TQuickRep на форме вы увидите разметку, позволяющую вам позиционировать ваша компоненты. Сетка показывается в текущих единицах TQuickRep. Это помогает позиционировать и устанавливать размеры очень с точностью 1/100 дюйма или 1/100 миллиметра. Вы можете выбрать единицы отображения, изменив свойство TQuickRep.Units. Разметка обновляется при изменении свойства.
Вы можете точно настаивать ваши страницы путем определения свойства Page компонента TQuickRep. Двойной щелчок по данному свойству разворачивает список подсвойств. Вы увидите все возможные свойства, которые управляют страницей. Все значения даются в выбранных единицах отображения. Выбранные границы показываются линиями из синих точек на компоненте TQuickRep. Ваши секции изменяются с учетом границ. Вы можете выбирать между portrait и landscape печатью (обычная и альбомная) и также можно включить/выключить показ разметки или линейки. Свойство PaperSize (размер бумаги) позволяет выбрать некоторые типовые размеры из следующего списка Letter, LetterSmall, Tabloid, Ledger, Legal, Statement, Executive, A3, A4, A4Small, A5, B4, B5, Folio, Quarto, qr10X14, qr11X17, Note, Env9, Env10, Env11, Env12, Env14, CSheet, DSheet, и Esheet
Шрифт по умолчанию для отчета устанавливается в свойстве TQuickRep.Font. Двойной щелчок по свойству раскрывает список подсвойств, где вы можете выбрать шрифт, размер, атрибуты и цвет. Все шрифты, указанные здесь – это шрифты установленные в Windows (True Туре шрифты и некоторые PostScript шрифты, если установлена программа Adobe TypeManager).