如何根据字段的值改变 tcxdbtreelist行的字体颜色?(50)

  • 主题发起人 主题发起人 xzzcq
  • 开始时间 开始时间
X

xzzcq

Unregistered / Unconfirmed
GUEST, unregistred user!
tcxdbtreelist是一个很好的树表控件,绑定到记录集后,如何根据某字段的值而行显示不同的字体颜色、背景色?如字段名为“状态”,当其值为“未开始”的行的字体颜色为红,“进行中”为绿,“已完成”为黑。
 
TreeList为5以下的版本,在CustomDrawCell处理,5版本,在OnCustomDrawDataCell处理。代码如下:procedure TForm1.cxtl1CustomDrawCell(Sender: TObject; ACanvas: TcxCanvas; AViewInfo: TcxTreeListEditCellViewInfo; var ADone: Boolean);var sValue : string;begin sValue := AViewInfo.Node.Texts[cxcol1.ItemIndex]; if sValue = '未开始' then ACanvas.Font.Color := clRed else if sValue = '进行中' then ACanvas.Font.Color := clGreen else if sValue = '已完成' then ACanvas.Font.Color := clBlack;end;
 
非常感谢孟不获大侠,按这种方法如固定“状态”字段列,则可以实现了,但如所有列都是动态创建的,则不好固定状态字段对应的是第几列,则如何实现呢?cxcol1.ItemIndex意味着对列进行了限定,如何根据列对应的字段名就可以来进行判断?
 
这个,DBTreeList没用过,一直用的是TreeList,但两者应该差别不大的。按你说的,列是动态创建的,那么代码中肯定有根据字段名创建Column的地方,只要在此处做一些处理,记录字段名和Column的对应关系,不就可以得到字段名对应的列了吗?上面的cxcol1是一个TreeList的Column
 
看了一下DBTreeList,发现DBTreeListColumn的DataBinding属性,有个FieldName属性,应该就是指数据库中的字段名利用这个属性,根据字段名,找出Column,然后再取出Column的Index?
 
孟大侠接分!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
592
import
I
I
回复
0
查看
748
import
I
后退
顶部