在StringGrid中,我将表格的水平线和竖线设为不显示,然后希望使表格的第一列的右边框线显示出来,采用绘制的方法,该如何绘制呢?请大家指点一下,谢谢。

解决方案 »

  1.   


    stringgrid1.GridLineWidth:= 0;   //平线和竖线设为不显示//画得一般般
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
      r:TRect;
    begin
      if ACol = 0 then
      begin
      r.Left:= Rect.Left+1;
      r.Bottom:= Rect.Bottom;
      StringGrid1.Canvas.Pen.Color:= CLRed;
      StringGrid1.Canvas.Pen.Width:= 6;
      StringGrid1.canvas.LineTo(r.Left,r.bottom);
      end;
    end;
      

  2.   


    //平线和竖线设为不显示
    stringgrid1.GridLineWidth:= 0;   // 第0列,这个好一点
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
      R: TRect;
    begin
      if ACol = 0 then
      with TStringGrid(Sender).Canvas do
      begin
        R.Left:= Rect.Left;
        R.Right:= Rect.Left+2;
        R.Top:= Rect.Top;
        R.Bottom:= Rect.Bottom;
        Brush.Color := clRed;
        FillRect(R);
        TextOut(Rect.Left, Rect.Top, TStringGrid(Sender).Cells[ACol, ARow]);
      end;
    end;