首页  编辑  

打印TstringGrid

Tags: /超级猛料/Print.打印/   Date Created:

]、。·ˉˇ¨〃々—~‖…’”〕〉》」』〗】∶!"'),.:;?]` Here's the code.  Just whack this onto a form's code and away you go.....

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;

Author: John C Molyneux