读书人

delphi中DBgried怎么给选中框中的内容

发布时间: 2013-08-09 15:16:24 作者: rapoo

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;

读书人网 >.NET

热点推荐