当前位置:主页>delphi7/进销存和数据库> 文章内容

求救关于:Tstringgrid(Dbgrid).Cell[0,1]类型转换出错的问题!

发布时间:2010-01-29 | QQ免费站
1楼: 由于我要处理这样一种情况,修改DBGRID内某些CELL的值(不保存到数据库); 然后要把DBGRID中全部CELL的值赋给ARRAY,所以我做了这样的一个转型的动作,但却报错: Tstringgrid(Dbgrid).Cell[0,1] access violation at address 002e26cf in module vcl70.bpl read of address 00000004
字串5

2楼: Tstringgrid(Dbgrid).Cells[1,1]呢?

字串9

3楼: DBGRID不是从STRINGGRID上继承的,所以这样的转换是致命的 字串7

4楼: CELL[1,1]也同样报错,我怎么处理呢?
字串2

5楼: 它继承自TCustomGrid 试试TCustomGrid(Dbgrid).SetEditText(x, y, value) TCustomGrid(Dbgrid).GetEditText(x, y, value)读出 字串9

6楼: 我同意somset的意见,你的集成有问题,再说你要转到数组里,完全可以不用这种方法阿,作循环处理不就行了,在数据库里面直接提取数据后再修改 字串4

7楼: 我的方法也不对,TCustomGrid中主要成员都是private的不能用 才发现 再想想

字串4

8楼: 我不知道楼主为什么要用TStringGrid来转换后再往表格里写,而且不写到数据库~~~ 你不写到数据库去可以用缓存的方式 要么你可以直接用StringGrid啊 字串2

9楼: 没有人知道了吗?我只是想以CELL[I,J]的方式读取DBGRID上的内容,有这么难吗? 字串9

10楼: http://www.delphibbs.com/delphibbs/dispq.asp?lid=2513534 http://www.delphibbs.com/delphibbs/dispq.asp?lid=951753 呵呵,手头上没有Delphi,没有办法试试 你自己看看吧,估计比较困难呀 字串9

11楼: 我试了一下:i:=Tstringgrid(Dbgrid).Row; 没有问题。 到底Tstringgrid(Dbgrid).Cell[0,1]怎么就出错了呢?

字串6

12楼: TStringGrid和TDBGrid都是从TCustomGrid继承下来的,所以如果转换时在TCustomGrid里没有的属性是不能被这样转换的~~~不知道你为什么非要那样写! 你如果只是为了能够取这些值的话可以这样: //自定义一个类 type TMyGrid=class(TCustomDBGrid); 然后读内容: var s:string; /// s:=TMyGrid(DBGrid1).GetEditText(列号,行号); 字串4

13楼: DBGrid没有Cells[Col,Row]的过程这么能强行转换能, 再说TDBGrid又不是从TStringGrid那继承过来的

字串2