TEditPrintout (модуль OPrinter)


TObject
 
Init
Done
Free
TPrintout
Banding
DC
ForceAllBand
Title
Init
BeginDocument
BeginPrinting
EndDocument
GetDialogInfo
GetSelection
GetNextPage
PrintPage
SetPrintParams
TEditPrintout
Editor
LineHeight
LinesPerPage
NumLines
StartLines
StartPos
StopLine
StopPos
Init
BeginDocument
GetDialogInfo
HasNextPage
PrintPage
SetPrintParams

    TEditPrintout - это объект распечатки, предназначенный для печати содержимого управляющего элемента редактирования.

Поля


Editor

     Editor: PEdit;

    Указывает на печатаемый управляющий элемент редактирования.

LineHeight

     LineHeight: Integer;

    Высота печатаемой строки. Вычисляется SetPrintParams на основе размера текста на устройстве печати.

LinesPerPage

     LinesPerPage: Integer;

    Число текстовых строк, печатаемых на странице. Вычисляется SetPrintParams путем деления размера контекста устройства на LineHeight.

NumLines

     NumLines: Integer;

    Устанавливается SetPrintParams в число строк текста в управляющем элементе редактирования.

StartLine

     StartLine: Integer;

     BeginDocument: Integer;

    BeginDocument устанавливает StartLine в 0 (первая строка текста). Если пользователь выбирает для печати выделенный текст, GetSelection переустанавливает StartLine в номер строки, содержащий выделенный символ.

StartPos

     StartPos: Integer;

    Если печатается выделенный текст, указывает позицию первого выделенного символа в тексте управляющего элемента редактирования. В противном случае это 0.

StopLine

     StopLine: Integer;

    BeginDocument устанавливает StopLine в NumLines - 1, что означает последнюю строку текста. Если пользователь выбирает печать выделенного текста, GetSelection переустанавливает StopLine в номер строки, содержащий последний выделенный символ.

StopPos

     StopPos: Integer;

    Если печатается выделенный текст, указывает позицию последнего выделенного символа в тексте управляющего элемента редактирования. В противном случае это 32767.

Методы


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

Init


     constructor Init(AEditor: PEdit; ATitle: PChar);

    Строит объект управляющего элемента редактирования, вызывая сначала конструктор Init, наследуемый из TPrintout. Затем устанавливает Editor в AEditor и инициализирует все остальные поля значением 0.

    См. также: TPrintout.Init.

BeginDocument


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

    Проверяет бит pf_Selection в поле Flags и определяет, хочет ли пользователь печатать выделенный текст или весь редактируемый текст. Если печатать нужно только выделенный текст, BeginDocument ничего не делает, оставляя значения, установленные GetSelection. В противном случае StartLine и StartPos устанавливаются в 0, StopLine - в NumLines - 1, а StopPos - в 32767.

GetDialogInfo


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

    Устанавливает StartPos и StopPos в начальную и конечную позиции выделенного текста, вызывая Editor^.GetSelection. Если StartPos и StopPos равны, что означает отсутствие выделенного текста, GetSelection возвращает False. В противном случае GetSelection устанавливает StartLine и StopLine в число строк, содержащих StartPos и StopPos соответственно, затем устанавливает Start в 1, а Stop - в число страниц, необходимых для печати выделенных строк текста, после чего возвращает значение True.

HasNextPage


     function HasNextPage: Boolean; virtual;

    Всегда возвращает True. Поскольку объект распечатки элемента редактирования может вычислить, сколько страниц требуется для печати текста управляющего элемента редактирования, он не полагается на значение HasNextPage, указывающее, что печать закончена.

PrintPage


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

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

SetPrintParams


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

    Устанавливает контекст устройства объекта распечатки и печатает область заданного размера, вызывая наследуемый из TPrintout метод SetPrintParams, а затем получает число строк в Editor, вызывая метод GetNumLines. Вычисляет LineHeight и LinesPerPage на основе размера текста в контексте устройства, переданного в ADC.

    См. также: TPrintout.SetPrintParams.