Отправляет email-рассылки с помощью сервиса Sendsay

Бесплатный курс уроков по Delphi

  Все выпуски  

Бесплатный курс уроков по Delphi


Информационный Канал Subscribe.Ru

Бесплатный курс уроков по Delphi


Учебники и программы по языкам программирования, СУБД, базы данных, дипломные, курсовые www.znay-na-5.by.ru (страница автора)


Игры, карты, анекдоты, софт, уроки программирования...- www.di-givoder-ul.narod.ru  (сайт друга)

Урок 6. Печать текстовая и графическая.

 

Содержание:

  1. Обзор

  2. Печать в текстовом режиме

  3. Вывод содержимого формы на печать

  4. Графическая печать (объект TPrinter)

1) Обзор

  В данной статье рассказывается о возможных способах вывода информации на печать из программы, созданной в Delphi. Рассматривается вывод документа в текстовом режиме принтера, вывод графики с помощью объекта TPrinter и печать содержимого формы. О выводе на печать отчетов с помощью генератора отчетов ReportSmith рассказывается ниже.

2) Печать в текстовом режиме

  Если Вам нужно напечатать на принтере документ в текстовом режиме, то это делается следующим образом. С принтером Вы работаете, как с обычным текстовым файлом, за исключением того, что вместо процедуры AssignFile нужно вызывать процедуру AssignPrn. В примере на принтер выводится одна строка текста:

procedure TForm1.Button1Click(Sender: TObject);
var
To_Prn : TextFile;
begin
AssignPrn(To_Prn);
Rewrite(To_Prn);
Writeln(To_Prn, 'Printer in Text Mode');
CloseFile(To_Prn);
end;

Здесь необходимо, видимо, пояснить, что по сравнению с BP 7.0 в Delphi изменены названия некоторых функций и переменных в модуле System :

AssignFile вместо Assign
CloseFile вместо Close
TextFile вместо Text

3) Вывод содержимого формы на печать

  Иногда в программе требуется просто получить твердую копию экранной формы. В Delphi это делается более, чем просто - у объекта TForm есть метод Print, который и нужно вызвать в нужный момент.


4) Графическая печать (объект TPrinter)

  И все же, более интересно, как из программы созданной в Delphi можно вывести на печать графическую информацию. Для этого есть специальный объект Printer (класса TPrinter). Он становится доступен, если к программе подключить модуль Printers (т.е. добавить имя модуля в разделе uses ). С помощью этого объекта печать на принтере графической информации становится не сложнее вывода этой информации на экран. Основным является то, что Printer предоставляет разработчику свойство Canvas ( работа с канвой описана в предыдущем уроке) и методы, выводящие содержание канвы на принтер. Рассмотрим подробнее свойства и методы объекта Printer.

Свойства Printer:

Aborted - тип булевский; показывает, прервал ли пользователь работу принтера методом Abort.
Canvas - канва, место для вывода графики; работа с Canvas описана в Уроке 5.
Fonts - список доступных шрифтов.
Handle - используется при прямых вызовах Windows API.
Orientation - ориентация страницы, вертикально или горизонтально.
PageWidth, PageHeight, PageNumber - соответственно ширина, высота и номер страницы.

Printers перечисляет все установленные в системе принтеры, а
PrinterIndex указывает, какой из них является текущим. Чтобы печатать на принтере по умолчанию здесь должно быть значение -1.
Printing - тип булевский; показывает, начата ли печать (методом BeginDoc).
Title - заголовок для Print Manager и для заголовка перед выводом на сетевом принтере.

Методы Printer:
Abort - прерывает печать, начатую методом BeginDoc

BeginDoc - вызывается перед тем, как начать рисовать на канве.
EndDoc - вызывается когда все необходимое уже нарисовано на канве, принтер начинает печатать именно после этого метода.
NewPage - переход на новую страницу.

Остальными методами объекта в обычных случаях пользоваться не нужно.

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

выполняется метод BeginDoc
на канве (Canvas) рисуем все, что нужно
при необходимости разместить информацию на нескольких листах вызываем метод NewPage
посылаем нарисованное на принтер, выполняя метод EndDoc


Сайт автора www.znay-na-5.by.ru По вопросам обмена ссылками пишите мне на e-mail sashazx@nm.ru
Александр Емельянов. Использование текста рассылки в коммерческих целях - только с разрешения автора!


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.urokidelphi
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное