如何动态改变DBGrid的表行颜色?

ccll 2000-08-01 08:12:00
各位大虾,谁知道如何动态改变DBGrid表行的颜色,不是在DrawColumnCell事件中进行处理,而是动态的,比如用鼠标双击某一行,使这一行变成红色等,并能读取此行的颜色值。最好有样例。谢谢!
...全文
331 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccll 2000-08-07
  • 打赏
  • 举报
回复
大虾们说来说去,还是没逃掉DrawColumnCell事件,请看问题具体内容!
Seoul 2000-08-05
  • 打赏
  • 举报
回复
下面是我在程序中用的一段代码, 供你参考
procedure TMainFrm.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if DataMoudle.Query1.FieldByName('CLBZ').asBOOLEAN=TRUE then
begin
DBGrid1.Canvas.Brush.Color:=clBtnFace;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.Font.Color:=clBlue;
DBGrid1.DefaultDrawColumnCell (Rect,DataCol,Column,State);
end;
end;
shylsz 2000-08-05
  • 打赏
  • 举报
回复
先给某table添加一个新字段"aa",再加入如下代码就可以实现了。
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin if table1.FieldByName('aa').asstring='001' then
begin
DBGrid1.Canvas.Brush.Color:=clred;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.Canvas.Font.Color:=clBlue;
DBGrid1.DefaultDrawColumnCell (Rect,DataCol,Column,State);
end;
end;

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
table1.Edit;
table1.FieldByName('aa').asstring:='001';
end;
ccll 2000-08-04
  • 打赏
  • 举报
回复
bpc的方法不行,不是在DrawColumnCell事件中。
bpc 2000-08-01
  • 打赏
  • 举报
回复
代码如下:
Dbgrid1.cancas.font.color:=clred; //红色
dbgrid1.defaultdrawcolumcell(rect,datacol,colum,state);
zoao 2000-08-01
  • 打赏
  • 举报
回复
l

5,384

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧