如何根据DBgrid的某一列字符条件,将字符颜色改变?
void __fastcall T_Test::DBGridEh1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumnEh *Column,
TGridDrawState State)
{
if (State.Contains(gdSelected))
{
return;
}
if( (ADO_Test->FieldByName("状态"))->AsString =="是" )
{
DBGridEh1->Columns->Items[5]->Font->Color=clSkyBlue;
}
else if((ADO_Test->FieldByName("状态"))->AsString =="否" )
{
DBGridEh1->Columns->Items[5]->Font->Color=clMaroon;
}
DBGridEh1->DefaultDrawColumnCell(Rect,DataCol,Column,State);
}
测试了上面那段代码,可以得到我要的效果,可是文字老是闪烁
DBGridEh1->DoubleBuffered=true;后
闪烁效果消失,但换来程序缓慢到极点.
请问各位前辈有没有更有效率做法?
受教了!!