忘了说明一下,“编号”是字段名,我的意思是把“编号”下的记录的值(如12345)赋给edit.text。顺便问一下:对edit1中的值进行查找是怎么写的?是table1.findbykey([edit1.text]) 还是什么了?

解决方案 »

  1.   

    其实就是把选中的网格中的数据值赋给edit.text。一定给分的。
      

  2.   

    edit1.Text:=DBGrid1.SelectedField.AsString
      

  3.   

    edit1.Text:= IntToStr(DBGrid1.Fields[编号].AsInteger);DBGrid1DblClick 双击
      

  4.   

    chlei(chlei) :如果字段类型是A的话呢,IntToStr(DBGrid1.Fields[姓名].AsInteger);是不行的吧?再比如是DATE类型呢?能否讲讲各种类型是如何转换的?
    请两位一定到我讲的帖子上挂个号,一定。
      

  5.   

    其实我是想在网格某一格上双击的时候,把这一行的值分别赋给好几个edit.text。因此想问一下其它类型的字段是如何转换的。
      

  6.   

    所以直接就用asstring就可以了,不需要画蛇添足。
      

  7.   

    我是想一次双击就够了,不用一个个的赋过去。要是用你那种方法,并不能把多个字段名下的值分别赋给各个edit.text.
      

  8.   

    可是你怎么能让用户确定的他选的是几个字段?
    如果是所有字段
     for i:=0 to DBGrid1.DataSource.DataSet.FieldCount-1 do
    begin
      memo1.Lines.Add(DBGrid1.DataSource.DataSet.Fields[i].asstring);
    end;
      

  9.   

    我用的是dbgrid,我不是把字段名的值赋给一个memo,而是分别赋给多个edit。比如:
    字段名:  编号  姓名  出生年月
    记录:   2345   张xx   1978-07-08
    当我双击“2345”或“张xx”或“1978-07-08”时,就能分别把2345、张xx、1978-07-08赋给edit1.text、edit2.text、edit3.text去。
    原来已在dbgrid的字段编辑器中加入所有的字段,dbgrid中显示的是用query查询出的记录。
    如果用edit1.Text:= IntToStr(DBGrid1.Fields[0].AsInteger);
    edit2.Text:= IntToStr(DBGrid1.Fields[编号].AsInteger);
    edit3.Text:= IntToStr(DBGrid1.Fields[编号].AsInteger);
    就可以实现了。用你的方法是如何做的呢?
      

  10.   

    是edit2.Text:= IntToStr(DBGrid1.Fields[2].AsInteger);
    edit3.Text:= IntToStr(DBGrid1.Fields[3].AsInteger);