Вывод текстовой информации

В приведенном ниже примере показано, как вывести на устрой­ство печати содержимое редактора (класс типа ТМето). Для этого мы воспользуемся рядом процедур, определенных в модуле Print­ers. Сначала ассоциируем значение текстовой переменной с прин­тером. Для этого используется процедура AssignPrn. Например:

Var

TextToPrint: System.Text; {}

..............

AssignPrn(TextToPrint); {Ассоциировать с принтером)

Rewrite(TextToPrint);{Открыть файл}

Отметим, что с принтером может быть ассоциирована только одна текстовая переменная. Попытка ассоциации второй тексто­вой переменной приведет к возникновению ошибки.

После этого вызов стандартных процедур Write и Writeln при­ведет к выводу текста на устройство печати (точнее, в принтер­ный контекст, определенный свойством Canvas). Вывод содер­жимого редактора осуществляется с помощью стандартной про­цедуры Writeln:

For Line:= 0 to Memo1.Lines.Count-1 do

Writeln(TextToPrint, Memo.Lines[Line])

После того как вывод информации завершен, необходимовы­звать стандартную процедуру Close:

System.Close(TextToPrint)

Этот вызов эквивалентен вызову Printer.EndDoc.

Для того чтобы текст на устройстве печати печатался тем же шрифтом, что используется для его отображения в редакторе, перед выводом информации на принтер необходимо выполнить следующее присваивание:

Printer. Canvas. Font: = Memo1.Font;

Примечание. Для вывода текстовой информации можно также воспользоваться методом TextOut принтерного контекста (Can­vas), который является «оболочкой» стандартной функции Windows API TextOut за тем исключением, что вам не требуется ука­зывать в качестве первого параметра контекст — им служит ком­понент Canvas, и указывать число символов в строке:

procedure Canvas.TextOut(X, Y: Integer; const Text: string);

function GDI.TextOut(DC: HDC; X, Y: Integer; Str: PChar; Count: Integer):

Bool;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: