一个DBGrid的问题!!!急急急 怎么为DBGrid的一个单元格付值又不让这个值提交到数据库呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 填写完以后不要运行dataset.post 我是从另一个窗口的Edit中取值来填入DBGrid的。 编辑dataset后填入,保存给予前提示! 我的意思是DBGrid有没有像StringGrid那样的property cell[ACol,ARow:Integer]:string;的属性? 没有的,它是和数据集关联的,与StringGrid不同 楼主是思维怪异得很,不得不佩服……不过还是提供你一个解决的思路:其实 DBGrid 和 StringGrid 都继承于 TCustomGrid,所以如果你要处理上面的东西,可以来点“硬”功夫,就是强制类型转换!举个例子,DBGrid 里面并没有 FixedCols 和 FixedRows 的参数,但是请试一下在你的程序中加入下面的语句:TStringGrid(DbGrid1).FixedCols := 2;你会发现奇迹:你的 DBGrid 竟然有一行固定列的!!!(注意,第一个固定列是 DBGrid 的 Indicator)同理,如果你需要改动里面的东西,转换后就能得到 Cells 的属性了。不过楼主还是不要乱来,如果 DBGrid 的内容与数据库不一致,那么 DBGrid 再没有意义了…… 补充: 我上面选用 FixCols 的原因,是因为看起来比较明显,而且要修改 DBGrid 的,也多数是因为要修改固定列的内容。 to deavilness(夜魔) 我用TStringGrid(DbGrid1).Cells[0,0]=‘100’进行修改的时候会出现地址错误,怎么办?? 如果你是不是想用DBGRID来做数据提交,可以在dbgrid的datasource.dataset的active=true之前设置dbgrid.datasource.dataset.locktype 改为:ltbatchoptimistic之后所有的修改post后只要不updatebatch()则不会提交数据库在dbgrid的datasource.dataset的 active=false 之后将dbgrid.datasource.dataset.locktype还原 真对不起,CustomGrid 并没有 Cells 属性,那么就用 TCustomGrid 的属性:var rect: TRect ; ...begin rect := DBGrid1.CellRect(0, 0) ; DBGrid1.Canvas.FillRect(rect); { 清除空格,这里我没有处理颜色 } DBGrid1.Canvas.TextOut(rect.Left, rect.Top, '这家伙总有奇怪的想法');文字的位置你自己调整,这里就不多说了。 谢谢deavilness(夜魔) ,你的qq是多少,等一下我把分汇到你的帐上。 填写后暂时不提交:参考cg1120(代码最优化-§新年祝福你,好运伴着你§)对某一单元格赋值可以这样: TdrawGrid(Dbgrid1).Row:=1; TDrawGrid(Dbgrid1).col := 2; Dbgrid1.setfocus; Adoquery1.Edit; Dbgrid1.SelectedField.Value:='good'; 通过外部程序直接获得获得当前网页URL地址 BDE联接有密码的数据库,如何不弹出登录窗口? Delphi中如何多线程操作数据库中的数据表 急!!!,求救转C问题 100 分 用delphi怎样实现:创建一个IIS 虚拟目录? 关于继承的问题 木马是否可以植入Excel表格内 跪求.. 在线等待,如何声明一个DLL中的类?最好有源码 简单的问题 使用TClientSocket的问题 我想学Delphi,大家建议买什么书比较好? 请大家进来谈一谈使用Delphi的感想!
property cell[ACol,ARow:Integer]:string;
的属性?
我上面选用 FixCols 的原因,是因为看起来比较明显,而且要修改 DBGrid 的,也多数是因为要修改固定列的内容。
之后所有的修改post后只要不updatebatch()则不会提交数据库
在dbgrid的datasource.dataset的 active=false 之后
将dbgrid.datasource.dataset.locktype还原
rect: TRect ;
...
begin
rect := DBGrid1.CellRect(0, 0) ;
DBGrid1.Canvas.FillRect(rect); { 清除空格,这里我没有处理颜色 }
DBGrid1.Canvas.TextOut(rect.Left, rect.Top, '这家伙总有奇怪的想法');文字的位置你自己调整,这里就不多说了。
对某一单元格赋值可以这样:
TdrawGrid(Dbgrid1).Row:=1;
TDrawGrid(Dbgrid1).col := 2;
Dbgrid1.setfocus;
Adoquery1.Edit;
Dbgrid1.SelectedField.Value:='good';