Проектирование графического интерфейса пользователя______________299

xecute при соответствующем задании ее параметров ищет по расширению заданно-
го для печати файла соответствующую ему системную программу Windows, и, если
находит, то осуществляет печать. Например, обычно Windows настроен так, что
файлам с расширением .txt соответствует программа Notepad, а файлам с расшире-
нием .doc — Word. В этом случае выполнение оператора

.      ShellExecute(Handle, "print", "Test.txt".MULL,NULL,SW_HIDE);

вызовет печать файла с именем test.txt средствами программы Notepad, а оператор
SheliExecute(Handle, "print", "Test.doc",NULL,NULL,SW_HIDE) ;

вызовет печать файла с именем test.doc средствами программы Word.

Этот способ печати можно использовать как для распечатки заранее создан-
ных файлов, так и для распечатки файлов, созданных во время выполнения при-
ложения методами SaveToFile, имеющимися у многих компонентов.

4.8.2 Печать с помощью объекта Printer

В C+4-Builder имеется класс печатающих объектов TPrinter, который обеспе-
чивает печать текстов, изображений и других объектов, расположенных на его
канве — Canvas. Свойства канвы подробно рассмотрены в разделе 5.1.3 и здесь мы
не будем на них останавливаться. Достаточно знать, что на канве могут размеща-
ться различные изображения и текст.

Класс объектов TPrinter объявлен в модуле Printers. Поэтому для работы с
этим классом надо включить в текст директиву препроцессора

ttinclude <Printers.hpp>
Рассмотрим некоторые свойства и методы объекта типа TPrinter.

|    Свойство, метод Описание

I    Canvas         Канва Canvas — место в памяти, в котором формируется

страница или документ перед печатью. Canvas обладает ря-
дом свойств, включая Pen (перо) и Brush (кисть), которые
позволяют вам делать рисунки и помещать на них текст. По-
дробное описание канвы и методов работы с ней вы найдете в

.                     разделе 5.1.3

|    TextOut        Метод канвы, который позволяет посылать в нее текст

|    Draw_______Метод канвы, который позволяет посылать в нее изображение

BeginDoc       Используется для начала задания печати

EndDoc         Используется для окончания задания печати. Фактическая
_________печать происходит только при вызове EndDoc__________

I    PageHeight___ Высота страницы в пикселях

j    PageWidth __Ширина страницы в пикселях ______ _________

I    NewPage_____Принудительно начинает новую страницу на принтере_____

к   PageNumber    Возвращает текущий номер печатаемой страницы________

^Г     Предположим, вы хотите напечатать текст и изображение, используя печата-
ющий объект. Изображение размещено на форме в компоненте Imagel. Вы можете

t осуществить эту печать следующим кодом:

TPrinter *Prntr = Printer();

Prntr->Canvas->Font->Size = 12;