Как мне создать диалог прекращения печати при работе с TPrinter?
Создайте форму с кнопкой "Abort". Обработчик нажатия кнопки должен вызывать Printer.Abort.
Теперь, при запуске печати, вам необходимо показать этот диалог в немодальном режиме методом Show(). Тем не менее, перед показом диалога необходимо деактивировать главную форму приложения, например так:
Application.MainForm.Enabled := false; AbortDlg.Show; { Здесь код печати } AbortDlg.Close; Appliction.MainForm.Enable := true; |
Имейте в виду, что для правильной логики работы необходимо проверять значение свойства Printer.Aborted. Если пользователь нажал кнопку прекращения печати, эта переменная укажет о необходимости выхода из подпрограммы печати. Но здесь есть небольшой подвох. Printer.Abort предполагает прерывание печати вызовом функции WinProcs.AbortDoc(), но он не делает этого (по крайней мере в Delphi 1). Следовательно, исправляя ошибку Borland, вы должны это делать сами в ответ на нажатие кнопки Abort (в обработчике события onClick). [000408]