首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2013-08-09 
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;

热点排行