Как распечатать TStringGrid?

Previous  Top  Next

    
 

 

 

Code:

uses

Printers;

 

procedure PrintGrid(sGrid: TStringGrid; sTitle: string);

var

X1, X2: Integer;

Y1, Y2: Integer;

TmpI: Integer;

F: Integer;

TR: TRect;

begin

Printer.Title := sTitle;

Printer.BeginDoc;

Printer.Canvas.Pen.Color  := 0;

Printer.Canvas.Font.Name := 'Times New Roman';

Printer.Canvas.Font.Size  := 12;

Printer.Canvas.Font.Style := [fsBold, fsUnderline];

Printer.Canvas.TextOut(0, 100, Printer.Title);

for F := 1 to sGrid.ColCount - 1 do

begin

   X1 := 0;

   for TmpI := 1 to (F - 1) do

     X1 := X1 + 5 * (sGrid.ColWidths[TmpI]);

   Y1 := 300;

   X2 := 0;

   for TmpI := 1 to F do

     X2 := X2 + 5 * (sGrid.ColWidths[TmpI]);

   Y2 := 450;

   TR := Rect(X1, Y1, X2 - 30, Y2);

   Printer.Canvas.Font.Style := [fsBold];

   Printer.Canvas.Font.Size := 7;

   Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]);

   Printer.Canvas.Font.Style := [];

   for TmpI := 1 to sGrid.RowCount - 1 do

   begin

     Y1 := 150 * TmpI + 300;

     Y2 := 150 * (TmpI + 1) + 300;

     TR := Rect(X1, Y1, X2 - 30, Y2);

     Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]);

   end;

end;

Printer.EndDoc;

end;

 

 

//Examplem, Beispiel:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

PrintGrid(StringGrid1, 'Print Stringgrid');

end;

 

 

©Drkb::03226

Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php