社区
数据库及相关技术
帖子详情
紧急求救!!如何给DBGrid的行画不同的颜色(根据某一个字段的值)
558047
2003-08-21 10:40:54
根据某一个字段的值,如何给DBGrid的行画上不同的颜色?
...全文
88
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 改变
DB
grid
控件选中时的单元格
颜色
.rar
Delphi 改变
DB
grid
控件选中时的单元格
颜色
,一般在默认状态下,
DB
grid
在行被选中时是深蓝...操作方法很简单:当选中
DB
grid
任意行时,点击上部的任意
颜色
值
,此时就已经将
DB
Grid
控件的选中行
颜色
改变为用户选中的
颜色
。
DB
Grid
改变背景
颜色
Delphi源代码
DB
Grid
改变背景
颜色
Delphi源代码
DB
Grid
单行修改、单列修改、选中一行但可编辑
2.保证无毒 3.简单,方便,实用 4.实例可以自行改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!
利用查找
字段
实现
DB
GRID
的下拉列表框
利用查找
字段
实现
DB
GRID
的下拉列表框
delphi动态配置
DB
grid
列显示类
delphi
db
grid
+clientdataSet实现的动态配置
db
grid
显示列类,输入
一个
xml文件,单保存即可把
db
grid
中所有列保存到xml中,还可以拖动,修改是否显示,显示宽度。
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章