程序中如何控制DBgrid当前行的指定列的单元格颜色,在线中(100分)

A

akaf

Unregistered / Unconfirmed
GUEST, unregistred user!
想在程序中绘制DBGirl时根据条件控制当前行的指定列的单元格背景颜色,怎么办?
关键在于,指定列
dbgrid1.Canvas.Brush.color:=clyellow; 这一句不成,因为它他是

 
做个循环
对单元进行色彩处理
 
对单元格进行色彩处理的方法是什么?我就是卡在这!!!!
 
我是例子里是这样的:
如果表格中性别是女的,她的姓名的颜色就是绿色,否则为默认的红色(注意改变颜色的
不是整行,只是姓名这个字段)
 
在事件中DBGrid1DrawColumnCell加入以下动作:
假定当前是红色
if datacol=2 then
begin
dbgrid1.Canvas.Brush.Color := clred;
dbgrid1.Canvas.TextRect(rect,rect.Left,rect.Top,dbgrid1.Fields[2].asstring);
end;
 
例:
void __fastcall TForm1::DBGrid1DrawDataCell(TObject *Sender,
const TRect &Rect, TField *Field, TGridDrawState State)
{
if (Field->Text[1] == 'C'){
DBGrid1->Canvas->Brush->Color = clRed;
DBGrid1->Canvas->FillRect(Rect);
DBGrid1->Canvas->TextOutA (Rect.Left + 2, Rect.Top + 2, Field->Text);
}
}
TDBGRID的控制功能较差,建议用别的,如INFO3000
 
顶部