在Timer中调用DBGrid1DrawColumnCell事件 在DBGrid1DrawColumnCell事件中写 procedure TFrmFindAutoPar.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var s:boolean; begin if s then dbgrid1.canvas.Font.Color:=clGreen else dbgrid1.canvas.Font.Color:=clRED ; dbgrid1.defaultdrawcolumncell(rect, datacol, column, state); end;
在Timer中调用DBGrid1DrawColumnCell事件 在DBGrid1DrawColumnCell事件中写 procedure TFrmFindAutoPar.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var s:boolean;//替换的条件 begin if s then dbgrid1.canvas.Font.Color:=clGreen else dbgrid1.canvas.Font.Color:=clRED ; dbgrid1.defaultdrawcolumncell(rect, datacol, column, state); end;
在DBGridEh的OnGetCellParams事件中加下面代码 if DBGridEh1.SumList.RecNo mod 2 = 1 then Background := $00FFC4C4 else Background := $00FFDDDD;
上面的仁兄的方法可能不行,要作如下改动: var Form1: TForm1; S:boolean; implementation{$R *.DFM}procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if S then DBGrid1.Canvas.Font.Color:=clGreen else DBGrid1.Canvas.Font.Color:=clRED ; DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); S:=NOT S; end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin inherited; with DBGrid1 do begin if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then begin Canvas.Font.Color :=ClYellow; Canvas.Brush.Color :=ClNavy; end else begin if DataSource1.DataSet.RecNo mod 2< >0 then {判断当前数据是奇数还是偶数行} Canvas.brush.Color :=ClWhite {如果是奇数行,DBGrid背景以白色显示} else Canvas.brush.Color :=$00EAEAEA; {如果是偶数行,DBGrid背景以浅灰色显示} end; DefaultDrawColumnCell(Rect, DataCol, Column, State); {这行很关键的,一定不要遗漏了} end; end; ...
在DBGrid1DrawColumnCell事件中写
procedure TFrmFindAutoPar.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var s:boolean;
begin
if s then
dbgrid1.canvas.Font.Color:=clGreen
else
dbgrid1.canvas.Font.Color:=clRED ;
dbgrid1.defaultdrawcolumncell(rect, datacol, column, state);
end;
在DBGrid1DrawColumnCell事件中写
procedure TFrmFindAutoPar.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var s:boolean;//替换的条件
begin
if s then
dbgrid1.canvas.Font.Color:=clGreen
else
dbgrid1.canvas.Font.Color:=clRED ;
dbgrid1.defaultdrawcolumncell(rect, datacol, column, state);
end;
Background := $00FFC4C4
else
Background := $00FFDDDD;
var
Form1: TForm1;
S:boolean;
implementation{$R *.DFM}procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if S then
DBGrid1.Canvas.Font.Color:=clGreen
else
DBGrid1.Canvas.Font.Color:=clRED ;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
S:=NOT S;
end;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
with DBGrid1 do
begin
if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
begin
Canvas.Font.Color :=ClYellow;
Canvas.Brush.Color :=ClNavy;
end
else
begin
if DataSource1.DataSet.RecNo mod 2< >0 then {判断当前数据是奇数还是偶数行}
Canvas.brush.Color :=ClWhite {如果是奇数行,DBGrid背景以白色显示}
else
Canvas.brush.Color :=$00EAEAEA; {如果是偶数行,DBGrid背景以浅灰色显示}
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State); {这行很关键的,一定不要遗漏了}
end;
end;
...