|
我在DataTreeList的CustomDrawCell事件里面写了下面这样一段代码,单双行颜色设置对了,但是另外一个根据某字段的值来设置字体的颜色这里实现不了,实际运行的时候是选中某一行,然后他根据选中行的某字段值,整个DataTreeList的字体颜色都变了,到底是怎么回事。
procedure TMBSC.DataTreeList1CustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TTreeListNode; AColumn: TTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: string; var AColor: Integer; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
begin
if not(ASelected or AFocused) then
begin
if DataSetJYXM.FieldByName('TGRK').AsBoolean = false then
AFont.Color := $0000FF;
if ANode.HasChildren then
begin
AColor := $FFFFFF; //设置奇数行颜色
Exit;
end;
if (ANode.Index mod 2) = 1 then //设置偶数行颜色
begin
AColor := $FFECDD;
end;
end;
end; |
|