delphi7 stringgird控件,我想让某一行或者某一列的线条变粗,有办法实现么?
自带的控件没这个功能,第三方控件Rzstringgird也没有貌似。只改变一条线的粗细和颜色。...
自带的控件没这个功能,第三方控件Rzstringgird也没有貌似。
只改变一条线的粗细 和颜色。 展开
只改变一条线的粗细 和颜色。 展开
展开全部
这个简单
在StringGrid的OnDrawCell事件写代码
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; Col, Row: Longint; Rect: TRect; State: TGridDrawState);
begin
if Col=? then //某列
begin
with Canvas do
begin
//在Rect的最左和最右画竖线
end;
end;
//行用Row,在Rect的顶部和底部画横线
end;
在StringGrid的OnDrawCell事件写代码
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; Col, Row: Longint; Rect: TRect; State: TGridDrawState);
begin
if Col=? then //某列
begin
with Canvas do
begin
//在Rect的最左和最右画竖线
end;
end;
//行用Row,在Rect的顶部和底部画横线
end;
追问
是直接Rect.left:=?赋值么?赋值没反应啊。
追答
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
//第四列,不画标题行
if (ACol = 3) and (ARow 0) then
begin
with StringGrid1.Canvas do
begin
StringGrid1.Canvas.Pen.Color:=clRed;//颜色可以自己改
StringGrid1.Canvas.Pen.Width := 1;//宽度可以自己改
//画左边线
MoveTo(Rect.Left, Rect.Top);
LineTo(Rect.Left, Rect.Bottom);
//画右边线
MoveTo(Rect.Right, Rect.Top);
LineTo(Rect.Right, Rect.Bottom);
end;
end;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询