在线等:看看能不能搞定!!想让Dbgrid根据数据只改变行与列交替部份的颜色,而总的交替行颜色不变!!!
procedure TForm1.DBGrid6DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
//以下代码是实现交替行和所选的颜色,
//问: 这在个前提下如何根据某一列中数据 ,只改变当前列所在行与列相交部份的颜色??
如 成绩优秀数据部份显示红色
if Column.Grid.DataSource.DataSet.RecNo Mod 2 = 0 then begin
DBGrid6.Canvas.Font.Color := clblue;
DBGrid6.Canvas.Brush.Color := clMoneyGreen;
end else begin
DBGrid6.Canvas.Font.Color := clblue;
DBGrid6.Canvas.Brush.Color := clSkyBlue;
end;
if gdSelected in state then begin
SetBkColor(dbgrid6.canvas.handle,ClYellow);
end;
DBGrid6.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;