刚开始学dephi,请高手们多多指点迷津啊DBgrid 是一组组合项目信息,里面有编号和名称两列。DBgrid 的datasource 是dtable1
我要双击一个 DBgrid 的某一行,新一个窗口,我想把 编号和名称传到新开的窗口,该怎么办呀我用 TableCSXMZH.FieldByName('BH').AsString; 总是得到第一行的值,而不是得到双击那一行的值呀,?

解决方案 »

  1.   

    DBgrid 是在 form1 里,我在form1 里的 oncellClick 事件中,用 TableCSXMZH.FieldByName('BH').AsString  ,那么选择那一行就可以得到这一行的值,但是在新开的窗口form1里,就得不到了,只能得到第一行的值, 
    DBgrid 的 datasource 换成 adouery这种也是一样的情况呀,还是只得到第一行的值,为什么啊,
      

  2.   

    TableCSXMZH.FieldByName('BH').AsString前面的名字应该改成数据源的才行,
    比如说:你用adoquery做数据源的话,就是adoquery.TableCSXMZH.FieldByName('BH').AsString
    我们要操作dbgrid里的数据的话,都应该是对数据源进行操作的
      

  3.   

    DBgrid.datasource.Dataset.FieldByName('BH').AsString
    就是你击的那一行你的 dtable1 和 TableCSXMZH 是什么关系??
      

  4.   

    有以下几个控件 TableCSXMZH  ,DsourceCSXMZH ,DBgrid
     dbpower:
    dtable1  就是 TableCSXMZH  , DsourceCSXMZH 的dataset 是TableCSXMZH  ,DBgrid  的datasource是 DsourceCSXMZH 数据都正常显示,
    我试了把  TableCSXMZH   的adotable型改为 adoquery 型 ,还是只能得到第一行的值,而不是所选的行的值, 是不是DBgrid要设置什么 ?天呀,这个问题搞了一上午了还不行,可能是我不能理解各位大侠的意思吧,
      

  5.   

    谢谢各位了,我是双击DBgrid时,弹出form2,在form2的crete里写的代码,所以,当form2打开时,值是默认取的第一筆,改为双击DBgrid时,手动建立form2 ,在 oncellClick事件里写就行了。