Printing

Delphi provides a printer object that can be used to print the contents of a Text Control.

The following example sends the contents of a Text Control, which can be several pages long, to the default printer:

Example Code

procedure TForm1.Print1Click(Sender: TObject);
var wPages, No : Integer;
begin
   wPages := TXTextControl1.CurrentPages;
   Printer.BeginDoc;
   for No := 1 To wPages do begin
      TXTextControl1.PrintDevice := Printer.Canvas.Handle;
      TXTextControl1.PrintPage(No);
      if No <> wPages then
         Printer.NewPage;
   end;
   Printer.EndDoc;
end;

After storing the number of pages in a local variable called wPages, the printer object is initialized with the Printer.BeginDoc statement. The For .. do loop runs from 1 to wPages to print all of the pages. Inside the loop there are three lines of code which print a single page:

Everything else, like calculating the line and page breaks, is done internally by Text Control. The formatting is based on the values of two groups of properties:

These properties are normally set in a page setup dialog box.