TDatagrid绑定数据源控件后,显示内容由数据库提供。如果想在查询数据库时,将数据库的字段值显示为另外一个字符串,方法如下:
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
TDBGrid * grid = dynamic_cast<TDBGrid *>(Sender);
//画字段
AnsiString quxian = ADOQuery1->FieldByName("权限")->AsString.Trim();
if(quxian == "1" || quxian == "2")
{
grid->Canvas->Pen->Color = clBlack;
grid->Canvas->Brush->Color = clWhite;
if(State.Contains(gdSelected))
{
if (!State.Contains(gdFocused))
grid->Canvas->Brush->Color = 0xC56A31;
if (State.Contains(0) && flag == false)
grid->Canvas->Brush->Color = clWhite;
}
if (State.Contains(gdFocused))
{
flag = true;
}
grid->Canvas->FillRect(TRect(495,Rect.top,510,Rect.bottom));
grid->Canvas->Brush->Style = bsClear;
if(quxian == "1")
grid->Canvas->TextOutA(510,Rect.top+2,"操作员");
else
grid->Canvas->TextOutA(510,Rect.top+2,"管理员");
return;
}
//缺省自绘函数
grid->DefaultDrawColumnCell(Rect,DataCol,Column,State);
}
以上代码,在数据库字段值为1时,TDatagrid中显示为“操作员;数据库字段值为2时,显示为管理员。