OnKeyDown (Delphi)
Description
The following code aborts a print job if you press the Esc key. Note that you should set KeyPreview to True to ensure that the OnKeyDown event handler of Form1 is called. Printer is a global Printers functions that returns a global instance of TPrinter to manage interaction with the printer.
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;
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.Controls.TWinControl.OnKeyDown ( fr | de | ja )
- Vcl.Printers.TPrinter.Abort ( fr | de | ja )
- Vcl.Printers.Printer ( fr | de | ja )
- Vcl.Printers.TPrinter.Printing ( fr | de | ja )
- Vcl.Graphics.TCanvas.TextOut ( fr | de | ja )
- Vcl.Printers.TPrinter.PageHeight ( fr | de | ja )
- Vcl.Forms.TCustomForm.KeyPreview ( fr | de | ja )