怎样给dxdbgrid或者dxdbtreelist的某些单元格添加背景图片或者修改背景颜色呀(100分)

K

kapi

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样给dxdbgrid或者dxdbtreelist的某些单元格添加背景图片或者修改背景颜色呀
 
在dxdbgrid中oncustomdrawcell事件写
if Query.FieldByName('字段名称').Value = '条件' then
begin
AColor := clRed;//背景颜色改变;
AFont.Color := clBlue;//字体颜色改变;
ACanvas.Brush.Bmp := BMP实例;
end;
 
楼上的兄弟,你这样只能改变某一行的颜色,不能改变指定的单元格的颜色,
ACanvas.Brush.Bmp 这一句有误,没有BMP这个属性呀,

谢谢你的回答,
 
if AColumn.FileName='' then
begin

end;
 
楼上的兄弟:
我不太明白你写的代码,
是否能写详细一点?
 
就是那个列要改变,你不是想改变某个单元格吗?
先加上if AColumn.FileName='' then
begin
AColor := clred;
...
end;
That's OK?
 
楼上的兄弟:
我明白你说的意思了,
你是用if Query.FieldByName('字段名称').Value = '条件' then这一句定确定行,
用if AColumn.FileName='' then这一句来确定列,这样来确定某个单元格的位置,
但是if AColumn.FileName='' then这一句编译通不过,提示没有filename这个属性,
请兄弟再给点指示呀

 
选中某列在oncustomdrawcell事件中
procedure TDFLTJForm.dxDBGrid1**CustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
var
value:variant;
begin
value:=Anode.Values[Acolumn.Index];
if value>45 then //条件
acolor:=clred; //变色
end;
 
问题很实用,至今没解决,提前请大家帮助
cxgrid同样如何处理???
 
TcxDBTreeList怎样在当前行之前插入一条记录?

用cxDBTreeList1.DataController.insert后,位置是对的,
但保存或改换行后,当前记录就跑到最后了,望大侠帮助(保存后记录位置不能跑)。

 
procedure TForm1.flCustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
var
value:string;
begin
value:=trim(VarAsType(AViewInfo.GridRecord.DisplayTexts[fl.Index], varString));
if value='QY' then //条件
begin
ACanvas.canvas.Font.Color:=clred; //变色
ACanvas.Canvas.Brush.Color :=rgb(252,253,152);
end;
end;

经测试,以下代码在cxgrid中可实现单元格级的背景及字体色
 
顶部