使用table.locate('fieldname',form2.dbgrid1.datasource.dataset.fieldbyname('fieldname').value,[]);

解决方案 »

  1.   

    在DBGrid中用户更改焦点则相应的dataset也改变记录位置,所以dataset的当前记录就是用户选择的记录
      

  2.   

    同意楼上的。在Dbgrid中选择的记录,可以通过如
    query1.fieldbyname('Id')得到相应值
      

  3.   

    DBGRID选择的是那条记录,当前的就是那条记录了,不用查找的。DBGRID与DATASOURCE关联,都属于数据感应控件,所以不用再查找了。
      

  4.   

    xiao_mi(宝祯) 说的是大家都用数据控件而且DBGRID的DATASET是一个表,
    如果是个QUERY,可能DBgrid中的显示不全,而你要给用户的是字段信息更多,
    这时就只能用QUERy来找到这个值了:
    Query2.close;
    query2.sql.clear;
    query2.sql.add('select * from  tablename where id=:id');
    query2.parameters.parambyname('id').value:=dsgrid.datasource.dataset.fieldbyname('id').value;
    query2.open;
    然后再把值写进其它组件中。
      

  5.   

    dbgridOnClick()
    var
      temstr:string;
    begin
      temstr:=dbgrid.fields[0].asstring;//temstr就得到的当鼠标单击DBGRID得到的FIELDS[0]的值。end
      

  6.   

    最简单就是在form上放个dbedit,dataset与dbgrid的相同,locate(dbedit.text),完事