cxGrid怎样才能根据字段值行显示不同颜色了? ( 积分: 100 )

  • 主题发起人 主题发起人 marco_hsu
  • 开始时间 开始时间
M

marco_hsu

Unregistered / Unconfirmed
GUEST, unregistred user!
cxGrid怎样才能根据字段值行显示不同颜色了?
现在我可以根据已有列显示不同颜色,可我的列是动态产生的,所以名字不能确定,也有可能对应字段不会在COLUMN列中出现,特别是状态字段,该怎么设置了:
procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var str:string;
begin
str:=trim(VarAsType(AViewInfo.GridRecord.DisplayTexts[ColumnSex.Index], varString));
if str='男' then
begin
ACanvas.Canvas.Brush.Color :=clred;
ACanvas.canvas.Font.Color := clblack;
end
else if str='女' then
begin
ACanvas.Canvas.Brush.Color :=clgreen;
ACanvas.canvas.Font.Color := clblack;
end;
if AViewInfo.Selected then
begin
ACanvas.Canvas.Font.Color := clwhite;
ACanvas.Canvas.Brush.Color :=clNavy ;
end;

我想改成和DBGRIDEH那样可以根据某个查询字段来改变
 
procedure TForm1.cxGrid1DBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var str:string;
begin
str:=trim(qrybrowse.fieldbyname('XX').asString);
if str='男' then
begin
ACanvas.Canvas.Brush.Color :=clred;
ACanvas.canvas.Font.Color := clblack;
end
else if str='女' then
begin
ACanvas.Canvas.Brush.Color :=clgreen;
ACanvas.canvas.Font.Color := clblack;
end;
if AViewInfo.Selected then
begin
ACanvas.Canvas.Font.Color := clwhite;
ACanvas.Canvas.Brush.Color :=clNavy ;
end;
这样就不行....
 
cxGrid单元格特效, 老大你CSDN/DelphiBox/DelphiBBS都发!
http://hi.baidu.com/cncharles/blog/item/9daab4ec6d0fe43d2797917f.html
 
你的仍然是要知道列名,不能只根据数据表字段来控制
 
接受答案了.
 
后退
顶部