Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  

форум программистов

Основы Delphi
TPrintDialog
Тип
Класс, который создает выбор принтера и диалог управления Dialogs unit
  type TPrintDialog = class;
Описание
Класс TPrintDialog используется для создания диалога выбор принтера и управления печати.

Перед печатью из вашего приложения, лучше отобразить диалог печати. Это позволяет пользователю выбирать желательный принтер и атрибуты, наряду с управлением печатью.

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

Collate Устанавливается ли предварительно опция Collate
Copies Сколько копий печатать
FromPage Выбранная страница в диапазоне страниц
ToPage Выбранная страница в диапазоне страниц
MinPage Самая ранняя выбиранная страница
MaxPage Самая поздняя выбиранная страница
PrintRange Выбираемый тип начальной страницы
Options Различные мультивыбираемые варианты
PrintToFile Если ложь, мы печатаем на бумагу

Значения PrintRange:

prAllPages Все страницы для печати
prSelection Выбор страницы для печати
prPageNums Номера страницы для печати

Вы выбираете один перед запуском диалога - и выясняете, пользователь изменил его, когда диалог закончился.

Значения Options могут быть:

poPrintToFile Печать в файл
poPageNums Печать по диапазону страниц
poSelection Печать выбранных страниц
poWarning Предупреждение, если плохой принтер
poHelp Показ помощи
poDisablePrintToFile Печать в файл отвергнута

Некоторые из этих вариантов могут также быть установлены пользователем диалога. Всегда, впоследствии, проверяйте их значения.

После установки этих вариантов, используйте метод Execute для отображения диалога, проверяйте Булев результат после его выполнения, чтобы знать, продолжить ли печать.
Примечания
Используется вместе с объектом Printer.
Похожие команды
Printer  Возвращает ссылку к глобальному объекту Printer

TObject  Тип базового класса, который является предком для всех других классов

 
Пример кода : Относительно простой пример
const
  TOTAL_PAGES = 4;      // Сколько страниц печатать
var
  printDialog    : TPrintDialog;
  page, startPage, endPage : Integer;

begin
  // Создание диалога выбора принтера
  printDialog := TPrintDialog.Create(Form1);

  // Установка опций диалога печати
  printDialog.MinPage := 1;              
  printDialog.MaxPage := TOTAL_PAGES;
  printDialog.ToPage  := TOTAL_PAGES;
  printDialog.Options := [poPageNums];

  // Если пользователь выбрал принтер (или значение по умолчанию), то печатаем!
  if printDialog.Execute then
  begin
    // Используйте функцию Printer, чтобы получить доступ к глобальному объекту TPrinter.
    // Set to landscape orientation
    Printer.Orientation := poLandscape;

    // Установите заголовок printjob - как оно появляется в менеджере задания по выводу на печать
    Printer.Title := 'Test print for Delphi';

    // Устанавливаем число копий для печати каждой страницы
    Printer.Copies := printDialog.Copies;

    // Начало печати
    Printer.BeginDoc;

    // Пользователь выбрал диапазон страниц?
    if printDialog.PrintRange = prPageNums then
    begin
      startPage := printDialog.FromPage;
      endPage   := printDialog.ToPage;
    end
    else // Все страницы
    begin
      startPage := 1;
      endPage   := TOTAL_PAGES;
    end;

    // Установка номера начальной страницы
    page := startPage;

    // Продолжаем печатать пока всё OK
    while (not Printer.Aborted) and Printer.Printing do
    begin
      // Пишем номер страницы
      Printer.Canvas.Font.Color := clBlue;
      Printer.Canvas.TextOut(40,  20, 'Page number = '+IntToStr(page));

      // Увеличиваем номер страницы
      Inc(page);

      // Теперь начинаем новую страницу - если она не последняя
      if (page <= endpage) and (not printer.aborted)
      then Printer.NewPage;
    end;

    // Конец печати
    Printer.EndDoc;
  end;
end;
Диалог печати отобразит, и различные страницы напечатаются если
пользователь нажмёт OK. Иначе, никакие страницы не печатаются.

Если напечатано, то синий номер страницы появляется на каждой странице
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия