小弟下载了一段让dbgrid特定行列变色的代码,可是无效,请指教

stbigcrab 2006-06-05 02:02:12
if((ADOTable1->FieldByName("sysmod"))->AsString == "1")
dbGrid->Canvas->Brush->Color=clBackground;
else if((ADOTable1->FieldByName("sysmod"))->AsString == "2")
dbGrid->Canvas->Brush->Color=0x00E1DDDD;//0x00E1DDDD;
else
dbGrid->Canvas->Brush->Color=clBtnFace;//0x00E1DDDD;
dbGrid->DefaultDrawDataCell(Rect,Field,State);

这段代码我记得运行过有效,但是不知道为何今天测试了下,却无效。。

我把ADOTable中sysmod字段为1的显示为clBackground颜色,2就是0x00E1DDDD;
感觉应该没有多大错误,编译后就是不显示我指定的颜色,已经确定数据库中有符合条件的数据。。
请各位前辈指教。
...全文
237 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmfangxun 2006-06-05
  • 打赏
  • 举报
回复

//使用OnDrawColumnCell,不要用OnDrawDataCell
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if(Column->Field->DataSet->RecNo%2==1)
{
//DBGrid1->Canvas->Font->Color=clRed;
DBGrid1->Canvas->Brush->Color=clRed;
}
else
{
//DBGrid1->Canvas->Font->Color=clBlue;
DBGrid1->Canvas->Brush->Color=clBlue;
}

DBGrid1->DefaultDrawColumnCell(Rect,DataCol,Column,State);

}
//---------------------------------------------------------------------------
lurel 2006-06-05
  • 打赏
  • 举报
回复
恭喜自己解决!
flowercity 2006-06-05
  • 打赏
  • 举报
回复
up
stbigcrab 2006-06-05
  • 打赏
  • 举报
回复
谢谢各位支持.
kmfangxun()的代码测试正确.

迅速结帖是一种美德...
stevenjscn 2006-06-05
  • 打赏
  • 举报
回复
接分。
stbigcrab 2006-06-05
  • 打赏
  • 举报
回复
原来DBGrid里面加了字段就不能显示颜色,把里面的字段删除掉打开ADOTABLE就能显示颜色。
那请问如何在DBGRID有字段下,达到定义颜色的目的呢?
stbigcrab 2006-06-05
  • 打赏
  • 举报
回复
。。。。
刚刚发帖就找到答案。。

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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