晕完全相反了,不选的先自己全部变成红色,被选择的反而变成黑色
procedure TWLDZ.DataGrid1CustomDrawCell(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 DataSource1.DataSet.FieldByName('DZBJ').AsString = '0' then //(ANode.Index mod 2) = 1 then
begin
AFont.Color := Graphics.clRed;
end;
end;
怎么会呢?
begin
if DataSource1.DataSet.FieldByName('DZBJ').AsString = '0' then //(ANode.Index mod 2) = 1 then
begin
AFont.Color := Graphics.clRed;
end;
end;
这段代码的意思是当DZBJ' 这个字段值为0时,整条记录的颜色变成红色,其他的为默认色。
要不你这样修改
begin
if DataSource1.DataSet.FieldByName('DZBJ').AsString = '0' then //(ANode.Index mod 2) = 1 then
AFont.Color := Graphics.clRed;
else
AFont.Color := Graphics.clBlue;
end;
你看看结果是啥