本人在DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);事件写了如下代码是记录相隔之间有颜色条。
if (DBGRID1.DataSource.DataSet.RecNo mod 2 =0) then // and (p_flag=0) then
begin
dbgrid1.Canvas.Brush.color:=16053219;
dbgrid1.Canvas.font.color:=clblack;
end;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
在dbgrid1的option中选择selectrow
但在选中有颜色的记录行不象没有颜色记录行那样选中时有深蓝色选中状态,感觉象未选中那样,如何解决。
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);事件写了如下代码是记录相隔之间有颜色条。
if (DBGRID1.DataSource.DataSet.RecNo mod 2 =0) then // and (p_flag=0) then
begin
dbgrid1.Canvas.Brush.color:=16053219;
dbgrid1.Canvas.font.color:=clblack;
end;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
在dbgrid1的option中选择selectrow
但在选中有颜色的记录行不象没有颜色记录行那样选中时有深蓝色选中状态,感觉象未选中那样,如何解决。
if not (gdSelected in State) then
if (DBGRID1.DataSource.DataSet.RecNo mod 2 =0) then
...
ARow: Longint; AState: TGridDrawState; ABrush: TBrush; AFont: TFont;
var Highlight: Boolean);
begin
if HighLight then
begin
HighLight := False;
ABrush.Color := clSelectedColor;
end;
with grdTradeDec.Fields[ACol], AFont do
case Tag of
1: Color := clMaroon;
2: Color := clGreen;
3: Color := clOlive;
4: Color := clNavy;
5: Color := clPurple;
6: Color := clTeal;
7: Color := clGray;
8: Color := clSilver;
end;
end;
将DefaultDrawing 改为trueif not (gdSelected in State) then
if (DBGRID1.DataSource.DataSet.RecNo mod 2 =0) then
...