比如,我通过一个查询选出了10条记录,但仍然有几条不符合要求,只要在符合条件的记录前画勾,就可以打印出所要的结果。
这个复选框可以说是临时的,它并不包含在数据库里。也就是说并不是再加一个字段,让它以CheckBox的形式显示。
谢谢!!
这个复选框可以说是临时的,它并不包含在数据库里。也就是说并不是再加一个字段,让它以CheckBox的形式显示。
谢谢!!
解决方案 »
- DBGrid 鼠标滚动事件解答
- 如何用一循环语句(带下标变量)来达到以下目的?
- 兄弟们救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!!!!!救命啦!!!!
- Delphi如何实现将IE网页中选中的文本拖拽到一个程序中并且保存成文本文件??
- 请问如何通过程序关闭com+
- 不用三方控件的话,如何修改窗体的外观?
- 解析数据库连接字符串?
- 如何在一个系统平台下实现功能模块的接合?
- 我建了一个数据库并做了一个程序访问它,但我后来又在数据库里加了一字段,那程序就不行了
- 实现这样的功能难吗?我最多只能给146分了
- 三层 DataSnap 怎么传输一个记录类型
- 请教如何开打一个窗口后,如何关闭前一个窗口
1、使用现成控件,如TDBGridEh。
2、建议一个字段(字符型),选择了输入一个字符。再设置被选择的行为红色。
TADOQUERY好像是实体字段
如果谁能让它支持了,那我认为就完美了。
其实添加一个DBCheckBox也挺好,需要时调出来让它盖住画的ChedkBox就行了。遗憾的是不能调整其大小,不能调到和画的那个一样大(当然,肯定有高手能做到)。
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
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;
DBGrid1.Options:=DBGrid1.Options-[dgEditing];
end
else
if DBGrid1.SelectedField.DataType<>ftboolean then
DBGrid1.Options:=DBGrid1.Options+[dgEditing];
end;
我有点疑问,想让DBGrid1.Options.dgEditing的属性变化,到底应该怎么写?
(忘了说了):这个想法很好,但实际是不可能实现的(其实没有不可能的事,只是水平高低的问题)。最好的方法还是在数据库里添加一个CheckBox字段。试想,你在DBGrid外边加上20个CheckBox,而数据有几千条,你怎么和数据一一对应呢?
看来没有再好的答案了,结帖给分。