原代码因为TGridDrawState名字空间冲突问题使用了TGridDrawState名字空间,在SQLSERVER2000中测试通过。
TGridDrawState名字空间冲突问题及解决方法 http://blog.youkuaiyun.com/gxsky/archive/2009/03/05/3958173.aspx
DBGridEh奇偶行不同颜色及选中单元格特殊显示,代码如下:
void __fastcall TForm1::DBGridEh1DrawDataCell(TObject *Sender,const TRect &Rect, TField *Field, Gridseh::TGridDrawState State)
// DBGridEh的DrawDataCell事件
{
if(Field->DataSet->RecNo%2 == 0 )
DBGridEh1->Canvas->Brush->Color = clCream;
else
DBGridEh1->Canvas->Brush->Color = clWindow;
if(State.Contains(gdSelected) || State.Contains(gdFocused))
DBGridEh1->Canvas->Font->Color = clBlue;
else
DBGridEh1->Canvas->Font->Color = clBlack;
DBGridEh1->DefaultDrawDataCell(Rect, Field, State);
}
选中行特殊颜色显示,只要把DBGridEh的options属性的dgRowSelect设置为ture即可。