TPrintout (модуль OPrinter)


TObject
 
Init
Done
Free
TPrintout
Banding
DC
ForceAllBands
Size
Title
Init
Done
BeginDocument
BeginPrinting
EndDocument
EndPrinting
GetDialogInfo
GetSelection
HasNextPage
PrintPage
SetPrintParams

    Этот объект используется в сочетании с объектом TPrinter для печати информации на принтере. Данный объектный тип является абстрактным. Это означает, что сам по себе он не может использоваться для печати каких-либо данных. Должны создаваться наследники TPrinter, а метод PrintPage должен переопределяться для печати нужных данных.

Поля


Banding

     Banding: Boolean;

    В случае значения True распечатка выводится с использование разбиения на полосы, и для каждой полосы вызывается метод PrintPage. В противном случае метод PrintPage вызывается однократно для каждой страницы. Разбиение распечатки на полосы более эффективно по времени и затратам памяти, чем его отсутствие. По умолчанию это поле имеет значение False.

DC

     DC: HDC;

    DC - это описатель используемого для печати контекста устройства.

ForceAllBands

     ForceAllBands: Boolean;

    Многие драйверы устройств не предусматривают многополосной печати на принтере, если и текст, и графика не выполняются с использованием первой полосы (обычно это только текстовая полоса). Если оставить в этом поле значение True, это вынудит драйвер принтера использовать все полосы, независимо от того, какие вызовы выполняются в методе PrintPage. Если PrintPage ничего не делает кроме вывода текста, то эффективнее установить это поле в False. По умолчанию оно равно True. Данное поле действует только в том случае, если Banding равно True.

Size

     Size: TPoint;

    Size представляет размер области печати на странице распечатки.

Title

     Title: PChar;

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

Методы


    Ниже описываются методы, определенные в данном объекте.

Init


     constructor Init(ATitle: PChar);

    Строит экземпляр TPrintOut с заданным заголовком.

Done


     destructor Done; virtual;

    Уничтожает ресурс, выделенный конструктором Init.

BeginDocument

     procedure BeginDocument(StartPage, EndPage: Integer;
                             Flag: Word); virtual;

    Метод Print объекта печати вызывает BeginDocument один раз перед печатью каждой копии документа. Поле Flag содержит pf_Banding или pf_Selection и указывает, будет ли использоваться разбиение на полосы или печать выделенного текста.

    Используемый по умолчанию метод BeginDocument ничего не делает. Наследующие объекты могут переопределять его для выполнения в начале каждой копии документа необходимой инициализации.

BeginPrinting


     procedure BeginPrinting; virtual;

    Независимо от того, сколько копий документа будет печататься, метод Print объекта печати вызывает BeginPrinting один раз в начале печати задания.

    Используемый по умолчанию метод BeginPrinting ничего не делает. Наследующие объекты могут переопределять его для выполнения необходимой перед печатью инициализации.

EndDocument


     procedure EndDocument; virtual;

    Метод Print объекта печати вызывает EndDocument после завершения печати каждой копии документа.

    Используемый по умолчанию метод EndDocument ничего не делает. Наследующие объекты могут переопределять его для выполнения необходимых действий в конце печати каждого документа.

EndPrinting


     procedure EndPrinting; virtual;

    Метод Print объекта печати вызывает BeginPrinting в конце печати всех копий документа.

    Используемый по умолчанию метод EndPrinting ничего не делает. Наследующие объекты могут переопределять его для выполнения необходимых в конце печати действий.

GetDialogInfo


     procedure GetDialogInfo(var Pages: Integer): Boolean;
                             virtual;

    Считывает информацию, необходимую для печати выделенных страниц документа, и возвращает True, если выбор страниц возможен. Использовать Pages не обязательно, но если легко определить число страниц, GetDialogInfo нужно передать в параметре Pages число страниц в документе. В противном случае HasNextPage следует установить в 0, а печать будет продолжаться, пока HasNextPage не возвратит False.

GetSelection


     function GetSelection(var Start, Stop: Integer): Boolean;
                           virtual;

    Определяет, имеет ли документ выделенный текст. Если да, то функция возвращает значение True, а Start и Stop указывают, соответственно, на начало и конец выделенного текста. Если GetSelection возвращает False, то командная кнопка печати выделенного текста в диалоговом блоке печати запрещена.

    По умолчанию GetSelection просто возвращает False. Наследующие объекты могут переопределять GetSelection для фактического определения существования выделенного текста.

HasNextPage


     function HasNextPage: Boolean; virtual;

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

PrintPage


     procedure PrintPage(Page: Word; var Rect: TRect;
                         Flags: Word); virtual;

    Вызывается для каждой страницы (или полосы, если Banding имеет значение True). Должен переопределяться для печати содержимого данной страницы. Параметры Rect и Flags используются при разбиении на полосы для указания размера и типа полосы, запрошенной через драйвер (если Banding равно False, это следует игнорировать). Параметр Size - это размер печатаемой страницы (в элементарных единицах устройства). Page - это номер текущей страницы, а DC - контекст устройства печати, который переопределенный метод должен использовать во всех вызова GDI.

SetPrintParams


     procedure SetPrintParams(ADC: HDC; ASize: TPoint): virtual;

    Устанавливает поля DC и Size в ADC и ASize соответственно. Это первый метод распечатки, вызываемый методом Print объекта принтера и обеспечивающий объект распечатки информацией, необходимой для разбиения на страницы и ведения счетчика страниц. Если наследующие объекты переопределяют SetPrintParams, они должны вызывать наследуемый метод.