社区
数据库及相关技术
帖子详情
紧急求救!!如何给DBGrid的行画不同的颜色(根据某一个字段的值)
558047
2003-08-21 10:40:54
根据某一个字段的值,如何给DBGrid的行画上不同的颜色?
...全文
89
6
打赏
收藏
紧急求救!!如何给DBGrid的行画不同的颜色(根据某一个字段的值)
根据某一个字段的值,如何给DBGrid的行画上不同的颜色?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
558047
2003-08-21
打赏
举报
回复
不是要字体变颜色,而是要行的背景变色
lvjack
2003-08-21
打赏
举报
回复
请教dbgrid的行颜色控制的问题
主要解答者: Libran 提交人: seehere
感谢: wx_zfjacky、Libran、szbug
审核者: xpyilin 论坛对应贴子: 查看
A :
我的dbgrid是这样的
施工号 工序1 工序2 …… 工序20 完成的工序数目
4-56 车30 钻5 …… 2
对每一行记录进行颜色控制,假如该行完成的工序数目是1,则该行
只有工序1的字体变为红色;假如该行完成的工序数目是2,则该行
工序1和工序2的字体变为红色;依次类推。
请问怎么用程序实现阿(DrawCollumCell函数中写)
---------------------------------------------------------------
void __fastcall TForm1::DBGrid1DrawDataCell(TObject *Sender,
const TRect &Rect, TField *Field, TGridDrawState State)
{
int Count;
Count=Table1->FieldByName("完成的工序数目")->AsData;
if (int i=0;i<Count;i++)
{
DBGrid1->Fields->FieldNo=i;
DBGrid1->Canvas->Font->Color = clRed;
}
DBGrid1->DefaultDrawDataCell(Rect, Field, State);
}
---------------------------------------------------------------
假设字段"工序1"在DataSet的Fields中的Index值为fIndex:
void __fastcall TForm1::DBGrid1DrawDataCell(TObject *Sender,
const TRect &Rect, TField *Field, TGridDrawState State)
{
TDBGrid *dbgrid = ((TDBGrid *)Sender);
TDataSet *dataset = dbgrid->DataSource->DataSet;
static int count = 0;
if (Column->Index == 0)
count = dataset->FieldByName("完成的工序数目")->AsInteger;
if (Column->Field->Index >= fIndex &&
Column->Field->Index < fIndex + count)
dbgrid->Canvas->Font->Color = clRed;
else dbgrid->Canvas->Font->Color = clBlack;
dbgrid->DefaultDrawDataCell(Rect, Field, State);
}
---------------------------------------------------------------
试试这个。。。
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if (((TDBGrid*)Sender)->DataSource->DataSet->Fields->Fields[0]->AsString.SubString(1, 1) == "A")
{
((TDBGrid*)Sender)->Canvas->Brush->Color=clRed;
}
else
{
((TDBGrid*)Sender)->Canvas->Brush->Color=clBlue;
}
((TDBGrid*)Sender)->DefaultDrawColumnCell(Rect, DataCol, Column, State);
}
558047
2003-08-21
打赏
举报
回复
但是具体怎么写语句?
yeking
2003-08-21
打赏
举报
回复
调用
DBGrid1DrawColumnCell事件
Santos
2003-08-21
打赏
举报
回复
来晚了,同意楼上
xuby5228
2003-08-21
打赏
举报
回复
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if (((TDBGrid*)Sender)->DataSource->DataSet->Fields->Fields[0]->AsString.SubString(1, 1) == "A")
{
((TDBGrid*)Sender)->Canvas->Brush->Color=clRed;
}
else
{
((TDBGrid*)Sender)->Canvas->Brush->Color=clBlue;
}
((TDBGrid*)Sender)->DefaultDrawColumnCell(Rect, DataCol, Column, State);
}
不就是行的背景变色吗?
Delphi 改变
DBgrid
控件选中时的单元格
颜色
.rar
Delphi 改变
DBgrid
控件选中时的单元格
颜色
,一般在默认状态下,
DBgrid
在
行
被选中时是深蓝...操作方法很简单:当选中
DBgrid
任意
行
时,点击上部的任意
颜色
值
,此时就已经将
DBGrid
控件的选中
行
颜色
改变为用户选中的
颜色
。
DBGrid
改变背景
颜色
Delphi源代码
DBGrid
改变背景
颜色
Delphi源代码
DBGrid
单
行
修改、单列修改、选中一
行
但可编辑
2.保证无毒 3.简单,方便,实用 4.实例可以自
行
改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!
利用查找
字段
实现
DBGRID
的下拉列表框
利用查找
字段
实现
DBGRID
的下拉列表框
delphi动态配置
DBgrid
列显示类
delphi
dbgrid
+clientdataSet实现的动态配置
dbgrid
显示列类,输入一个xml文件,单保存即可把
dbgrid
中所有列保存到xml中,还可以拖动,修改是否显示,显示宽度。
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章