1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| procedure PrintGrid2(sGrid: TStringGrid; sTitle: String);
var
X1, X2 : Integer;
Y1, Y2 : Integer;
TmpI : Integer;
F : Integer;
TR : TRect;
begin
Printer.Orientation := poPortrait;
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, 0, Printer.Title);
For F:=1 to sGrid.ColCount-1 do begin
X1:=0;
if F <> 8 then
begin
if F <> 10 then
begin
For TmpI:=1 to (F-1) do
X1:=X1+5*(sGrid.ColWidths[TmpI]);
Y1:=200; // Y1:=300;
X2:=0;
For TmpI:=1 to F do
X2:=X2+5*(sGrid.ColWidths[TmpI]);
Y2:=350; // Y2:=450;
TR:=Rect(X1, Y1, X2-30, Y2);
Printer.Canvas.Font.Style:=[fsBold];
Printer.Canvas.Font.Size:=8;
Printer.Canvas.TextRect(TR, X1+50, 250, sGrid.Cells[F, 0]); // 250<<350
Printer.Canvas.Font.Style:=[];
Printer.canvas.Pen.Width := 7; //épaisseur de la ligne
Printer.Canvas.MoveTo(X1,Y1); //1
Printer.Canvas.LineTo(X2,Y1);
Printer.Canvas.MoveTo(X1,Y1); //2
Printer.Canvas.LineTo(X1,Y2);
Printer.Canvas.MoveTo(X2,Y2); //3
Printer.Canvas.LineTo(X2,Y1);
For TmpI:=1 to sGrid.RowCount-1 do begin
Y1:=140*TmpI + 200; // Y1:=150*TmpI + 300;
Y2:=140*(TmpI+1)+ 200; // Y2:=150*(TmpI+1)+ 300;
TR:=Rect(X1, Y1, X2-30, Y2); // TR:=Rect(X1, Y1, X2-30, Y2);
Printer.Canvas.TextRect(TR, X1+50, Y1+25, sGrid.Cells[F, TmpI]); //X1+50, Y1+50,
Printer.Canvas.MoveTo(X1,Y1); //1
Printer.Canvas.LineTo(X2,Y1);
Printer.Canvas.MoveTo(X1,Y1); //2
Printer.Canvas.LineTo(X1,Y2);
Printer.Canvas.MoveTo(X2,Y2); //3
Printer.Canvas.LineTo(X2,Y1);
Printer.Canvas.MoveTo(X2,Y2); //4
Printer.Canvas.LineTo(X1,Y2);
end;
end;
end;
end;
Printer.EndDoc;
end; |
Partager