delphi中DBgried怎么给选中框中的内容修改颜色?想通过一个button键来实现。请教

delphi中DBgried如何给选中框中的内容修改颜色?想通过一个button键来实现。请问
如题。求解。
不通过数据库,直接在界面上通过个button修改dbgrid某个框里的字体颜色。可以实现吗?

------解决方案--------------------
你试下下面的代码:


var
  fmMain: TfmMain;
  bChangeColor: Boolean;

implementation

{$R *.dfm}

{ TForm1 }

procedure TfmMain.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
  with (Sender as TDBGrid) do
  begin
    if bChangeColor then
      Canvas.Font.Color := clRed;
    DefaultDrawDataCell(Rect, Field, State);
  end;
end;

procedure TfmMain.FormCreate(Sender: TObject);
begin
  bChangeColor := False;
end;

procedure TfmMain.SpeedButton1Click(Sender: TObject);
begin
  bChangeColor := not bChangeColor;
  DBGrid1.Refresh;
end;

end.

------解决方案--------------------
具体要定位到某个单元格的话重画事件DrawColumnCell用下面的代码:


procedure TfmMain.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  with (Sender as TDBGrid) do
  begin
    if bChangeColor and
       (DataCol = 0) and //第一列
       (DataSource.DataSet.RecNo = 2) then //第二行
      Canvas.Font.Color := clRed;

    DefaultDrawColumnCell(Rect, DataCol, Column, State);
  end;
end;