with (sender as TDBGrid) do
begin
if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
begin
Canvas.Font.Color :=clblack;
Canvas.Brush.Color :=SelectColor;
end
else begin
if DataSource1.DataSet.RecNo mod 2 <> 0 then {判断当前数据是奇数还是偶数行}
Canvas.brush.Color :=Color1
else
Canvas.brush.Color :=Color2;
end;
Canvas.Font.Color :=clblack;
DefaultDrawColumnCell(Rect, DataCol, Column, State); {这行很关键的,一定不要遗漏了}
end; 类似于这样的代码我已经测试了很多了,但是我在增加新行的时候颜色就全部成为一个颜色了,当重新选择单元格时
颜色又隔行变色了,就是增加状态下不行,貌似以 行号 mod 2=0...都不行
delphi7 dbgrideh网格控件
begin
if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
begin
Canvas.Font.Color :=clblack;
Canvas.Brush.Color :=SelectColor;
end
else begin
if DataSource1.DataSet.RecNo mod 2 <> 0 then {判断当前数据是奇数还是偶数行}
Canvas.brush.Color :=Color1
else
Canvas.brush.Color :=Color2;
end;
Canvas.Font.Color :=clblack;
DefaultDrawColumnCell(Rect, DataCol, Column, State); {这行很关键的,一定不要遗漏了}
end; 类似于这样的代码我已经测试了很多了,但是我在增加新行的时候颜色就全部成为一个颜色了,当重新选择单元格时
颜色又隔行变色了,就是增加状态下不行,貌似以 行号 mod 2=0...都不行
delphi7 dbgrideh网格控件
if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
begin
Canvas.Font.Color :=clblack;
Canvas.Brush.Color :=SelectColor;
end
我后来修改成代码sender as TDBGrideh 可以正常运行
这我只是感觉,没试过,有时间试一下。