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