PC FAQ





Главная Delphi PHP Контакты

Последние статьи
Популярное
  • Обзор Палитры Компонент
    В данной статье дается обзор стандартных и дополнительных компонент из Палитры Компонент Delphi (ст
  • Основы работы с базами данных
    В этом уроке описываются основы работы с базами данных. Напомним, что под базой данных понимается н
  • DDE Delphi
    В данной статье приводятся основные факты о DDEML и показывается, как можно использовать DDE в п
  • Логические величины (истина/ложь)
    Логический тип данных принимает всего два значения: истинное (true) и ложное (false). Логические в
  • Переменные
    В примерах, приведенных выше, я попутно показал, как происходит присваивание и изменение значений
  • Объект TOLEContainer
    Из статьи Вы узнаете основные сведения об OLE, некоторые вещи относительно OLE 2 и OLE Automation
  • Строковые значения
    Строкой (string) называется последовательность символов, которая рассматривается как единое целое,
  • Массивы
    Массив представляет собой список однотипных элементов. Существует два типа массивов, различающи
  • Печать текстовая и графическая
    Если Вам нужно напечатать на принтере документ в текстовом режиме, то это делается следующим образо
  • Управление проектом
    Проект Delphi Любой проект имеет, по-крайней мере, шесть файлов, связанных с ним. Три из них отн
Печать текстовая и графическая
Если Вам нужно напечатать на принтере документ в текстовом режиме, то это делается следующим образом. С принтером Вы работаете, как с обычным текстовым файлом, за исключением того, что вместо процедуры 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
      1. Вывод содержимого формы на печать

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

      3. Графическая печать (объект 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
      1. Пример ex06.zip
В примере (проект PRINTS.DPR, рис.1 ) реализованы все три вышеописанных ситуации.





ГлавнаяОбратная связьDelphiPHP