PrinterAborted (Delphi)
Description
The following code displays a dialog box if the print job was aborted. This code aborts a print job if you press Esc. Note that you should set KeyPreview to True to ensure that the OnKeyDown event handler of Form1 is called. Also notice that the Button1Click routine continues to run even after the print job has been aborted.
Code
uses Printers;
procedure TForm1.Button1Click(Sender: TObject);
var
I, X, Y: Integer;
Memo1 : TMemo;
r: TRect;
begin
Memo1 := TMemo.Create(Form1);
Memo1.Parent := Form1;
Memo1.Visible := True;
Memo1.Width := 700;
if (OpenDialog1.Execute) then
begin
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
Printer.BeginDoc;
X := 200;
Y := 200;
for I := 0 to 140 do
if (not Printer.Aborted) then
begin
Printer.Canvas.TextOut(X, Y, Memo1.Lines[I]);
Y := Y + 80;
if (Y > (Printer.PageHeight - 300)) then
begin
Y := 200;
Printer.NewPage;
Sleep(1000); // to give you time to abort!
end;
end;
if (not Printer.Aborted) then Printer.EndDoc;
end;
if Printer.Aborted then
MessageDlg('The print job did not finish printing', mtInformation, [mbOK], 0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
KeyPreview := True;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Key=VK_ESCAPE) and Printer.Printing then
begin
Printer.Abort;
// MessageDlg('Printing aborted', mtInformation, [mbOK],0);
end;
end;
Uses
- Vcl.Printers.TPrinter.Aborted ( fr | de | ja )