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.
Тип TPrintDialog в Delphi: Відносно простий приклад
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
// Встановити альбомну орієнтацію
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;
Результат
This is a way to live A big life
This is THE way to live THE big life
Подібні функції, процедури та команди
Printer — повертає посилання до глобального об'єкту Printer.
TObject — тип базового класу, який є предком для всіх інших класів.
