关于 TDBGrid 的单元格的背景颜色问 ( 积分: 50 )

  • 主题发起人 主题发起人 JebelStream
  • 开始时间 开始时间
J

JebelStream

Unregistered / Unconfirmed
GUEST, unregistred user!
看到一个例子可以把一条记录的背景都变成一个指定的颜色,而我只想把单个单元格的背景变成红色,应该怎么办呢?
 
看到一个例子可以把一条记录的背景都变成一个指定的颜色,而我只想把单个单元格的背景变成红色,应该怎么办呢?
 
给你一段cb代码,关键是同时判断行和列的坐标条件。列datacol是从0开始。
void __fastcall TfmLookup::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if((DBGrid1->DataSource->DataSet->FieldByName("OrderNo")->AsString == "1003") && (DataCol == 0)){
DBGrid1->Canvas->Brush->Color = clRed;
DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);
}
}
 
TCustomDBGridCracker=class(TCustomDBGrid);//声明新类

procedure TRecordTableF.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
With TCustomDBGridCracker(sender) do begin
if RecordTableF.DBGrid1.Fields[3].Value = 3 then Canvas.Brush.Color:=Clred;
DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end;

不知道那位高手能把上面的代码改一下,让它只把 Fields[3] 这个单元变成红色背景,因为其它段我还要做类似的处理,如果每个条件都是填充一行的话,那会相互影响的。
 
wjfgttt 朋友,多谢你给我的提示。
 
谢谢 wjfgttt
 
后退
顶部