可以加 private { Private declarations } public originaloptions:TDBGridOptions; //这个要写 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); begin if column.Field.DataType=ftboolean then begin form1.DBGrid1.Canvas.FillRect(rect); drawframecontrol(form1.DBGrid1.Canvas.Handle,rect,dfc_button,ctrlstate[column.Field.asboolean]); end; end;procedure TForm1.DBGrid1ColEnter(Sender: TObject); begin if form1.DBGrid1.SelectedField.DataType=ftboolean then begin originaloptions:=form1.DBGrid1.Options; form1.DBGrid1.Options:=form1.DBGrid1.Options-[dgEditing]; end; end; procedure TForm1.DBGrid1ColExit(Sender: TObject); begin if form1.DBGrid1.SelectedField.DataType=ftboolean then form1.DBGrid1.Options:=originaloptions; end; procedure TForm1.DBGrid1CellClick(Column: TColumn); begin if form1.DBGrid1.SelectedField.DataType=ftboolean then begin form1.DBGrid1.SelectedField.DataSet.Edit; form1.DBGrid1.SelectedField.AsBoolean:=not form1.DBGrid1.SelectedField.AsBoolean; form1.DBGrid1.SelectedField.DataSet.Post; end; end;
该怎么做?
{ Private declarations }
public
originaloptions:TDBGridOptions; //这个要写
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);
begin
if column.Field.DataType=ftboolean then
begin
form1.DBGrid1.Canvas.FillRect(rect);
drawframecontrol(form1.DBGrid1.Canvas.Handle,rect,dfc_button,ctrlstate[column.Field.asboolean]);
end;
end;procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
if form1.DBGrid1.SelectedField.DataType=ftboolean then
begin
originaloptions:=form1.DBGrid1.Options;
form1.DBGrid1.Options:=form1.DBGrid1.Options-[dgEditing];
end;
end;
procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
if form1.DBGrid1.SelectedField.DataType=ftboolean then
form1.DBGrid1.Options:=originaloptions;
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
if form1.DBGrid1.SelectedField.DataType=ftboolean then
begin
form1.DBGrid1.SelectedField.DataSet.Edit;
form1.DBGrid1.SelectedField.AsBoolean:=not form1.DBGrid1.SelectedField.AsBoolean;
form1.DBGrid1.SelectedField.DataSet.Post;
end;
end;
?在DBgrid里面可以加入一列checkbox吗?谢谢!(Iris) 20 4 8-5 00:47 管理
?我现在想达到的效果是:在一个类似dbgrid的显示区域里面显示n行n列,每一行的前面有一个checkbox,通过点击checkbox标识该行被选择,画面(Iris) 20 0 8-4 20:10 管理
?如何判断一个指针是否存在?谢谢!(Iris) 20 2 8-4 14:05 管理
?高分求助!!winexec函数的第一个参数可以设置为相对路径吗(例如主文件所在目录或其上一层)?谢谢!(Iris) 50 4 7-30 17:32 管理
?高分求助!!如何在程序中将csv文件的某一列设成同一个值?谢谢(Iris) 50 0 7-30 16:22 管理
?****如何取得DirectoryListBox控件中被选中的文件的目录?(Iris) 20 2 7-29 11:24 管理
?高分求助!!如何取得一个文件夹里的所有文件的文件名?(Iris) 80 7 7-29 10:20 管理
?高分求助!!如何得到csv文件里的指定纪录行中的指定项目的内容?(Iris) 50 1 7-28 17:43 管理
?高分求助!!如何让listbox的垂直滚动条始终显示在最下边?(Iris) 100 8 7-25 16:53 管理
?.xls文件存成.csv文件后怎么不能修改啦!V.WorkBooks[1].WorkSheets[2].saveas('d:\12345.csv',XLcsv,'789');(Iris) 20 3 7-25 12:01 管理
?高分求助!怎么把excel文件转换成csv文件呀?谢谢(Iris) 100 4 7-24 13:19 管理
?高分求助!在delphi中如何获得excel文件的指定sheet的指定行列的值?谢谢!(Iris) 80 5 7-23 15:34 管理
?高分求助!如何控制一个文件夹里的文件的排列顺序?例如:让文件按时间或名字排列?谢谢(Iris)
问了这么多问题,你怎么不揭贴啊,是不会吗?