Else If AObj Is TStringGrid Then
Begin
Canvas.Font:=TStringGrid(AObj).Font; ColumnCount:=TStringGrid(AObj).ColCount;
If ColumnCount>24 Then ColumnCount:=24; NowX:=ARect.Left;
NowY:=ARect.Top;
For X:=0 To ColumnCount-1 Do
Begin
WidthArray[X+1]:=Round(TStringGrid(AObj).ColWidths[X]*SX);
NowX:=NowX+WidthArray[X+1];
If NowX>ARect.Right Then
Begin
ColumnCount:=X;
Break;
End;
End; //draw
NowRow:=0;
While NowRow<TStringGrid(AObj).RowCount Do
Begin
//draw a record
NowX:=ARect.Left;
For X:=0 To ColumnCount-1 Do
Begin
Canvas.TextOut(NowX+8,NowY+2,TStringGrid(AObj).Cells[X,NowRow]);
NowX:=NowX+WidthArray[X+1];
End; Inc(NowRow);
NowY:=NowY+Round((ABS(TStringGrid(AObj).Font.Height)+4)*SY);
If (NowY+Round((ABS(TStringGrid(AObj).Font.Height)+4)*SY))>ARect.Bottom Then
Break; Canvas.MoveTo(ARect.Left,NowY);
Canvas.LineTo(ARect.Right,NowY);
NowY:=NowY+Round(4*SY);
End; //draw lines
Canvas.Pen.Width:=2;
NowX:=ARect.Left;
For X:=1 To ColumnCount-1 Do
Begin
NowX:=NowX+WidthArray[X];
Canvas.MoveTo(NowX,ARect.Top);
Canvas.LineTo(NowX,ARect.Bottom);
End;
Canvas.Pen.Width:=1;
End;
Begin
Canvas.Font:=TStringGrid(AObj).Font; ColumnCount:=TStringGrid(AObj).ColCount;
If ColumnCount>24 Then ColumnCount:=24; NowX:=ARect.Left;
NowY:=ARect.Top;
For X:=0 To ColumnCount-1 Do
Begin
WidthArray[X+1]:=Round(TStringGrid(AObj).ColWidths[X]*SX);
NowX:=NowX+WidthArray[X+1];
If NowX>ARect.Right Then
Begin
ColumnCount:=X;
Break;
End;
End; //draw
NowRow:=0;
While NowRow<TStringGrid(AObj).RowCount Do
Begin
//draw a record
NowX:=ARect.Left;
For X:=0 To ColumnCount-1 Do
Begin
Canvas.TextOut(NowX+8,NowY+2,TStringGrid(AObj).Cells[X,NowRow]);
NowX:=NowX+WidthArray[X+1];
End; Inc(NowRow);
NowY:=NowY+Round((ABS(TStringGrid(AObj).Font.Height)+4)*SY);
If (NowY+Round((ABS(TStringGrid(AObj).Font.Height)+4)*SY))>ARect.Bottom Then
Break; Canvas.MoveTo(ARect.Left,NowY);
Canvas.LineTo(ARect.Right,NowY);
NowY:=NowY+Round(4*SY);
End; //draw lines
Canvas.Pen.Width:=2;
NowX:=ARect.Left;
For X:=1 To ColumnCount-1 Do
Begin
NowX:=NowX+WidthArray[X];
Canvas.MoveTo(NowX,ARect.Top);
Canvas.LineTo(NowX,ARect.Bottom);
End;
Canvas.Pen.Width:=1;
End;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货