我用兄弟们提供的方法 加个布尔字段 重绘单元格的方法,结果出现了点的时候 ,看的到后面的ture false
我本来还想到用重绘单元格的方法里面加图标的 现在看来效果不理想 请教各位解决办法啊 就是下面的方法unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, DBClient, ExtCtrls, DBCtrls;type
TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    ClientDataSet1: TClientDataSet;
    ClientDataSet1Value: TBooleanField;
    DBNavigator1: TDBNavigator;
    ClientDataSet1ID: TAutoIncField;
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure DBGrid1CellClick(Column: TColumn);
private
    { Private declarations }
public
    { Public declarations }
end;var
Form1             : TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
const
CtrlState: array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED);
beginif Column.Field.DataType = ftBoolean then
begin
    DBGrid1.Canvas.FillRect(Rect);
    DrawFrameControl(DBGrid1.Canvas.Handle,Rect, DFC_BUTTON, CtrlState[Column.Field.AsBoolean]);
end;end;procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
   if DBGrid1.SelectedField.DataType = ftBoolean then
   begin
     DBGrid1.SelectedField.Dataset.Edit;
     DBGrid1.SelectedField.AsBoolean :=not DBGrid1.SelectedField.AsBoolean;
     DBGrid1.SelectedField.Dataset.Post;
   end; 
end;end.