在form1上有Edit1(只读),Edit的右边有个小按钮,用来弹出一个有DBGrid的窗体,我要做的是把DBGrid的一条记录值赋给form1的Edit1.Text里(如可以通过双击等),当然这条记录不止一个字段,如:Edit1.Text=字段1;Edit2.Text=字段2;
我是这样的,为什么不行?
procedure Txuanzechanpinxinghaofm.DBGrid1DblClick(Sender: TObject);
begin
xinzengfm.Edit2.Text:=ADODataSet1.FieldByName(DBGrid1.Columns.Items[1].FieldName).AsString;
xinzengfm.Edit6.Text:=ADODataSet1.FieldByName(DBGrid1.Columns.Items[0].FieldName).AsString;
 Close;
end;

解决方案 »

  1.   

    你直接用xinzengfm.edit2.text:=adodataset1.fieldbynem('列名').asstring;就是把你当前点的记录的对应字段给了edit,当然你要看类型是否匹配!
      

  2.   

    改为DataSet
    xinzengfm.Edit2.Text:=DataSource1.DataSet.FieldValues['FieldName']
      

  3.   

    你的DGGRID好象没在EDIT的同一个窗口吧
      

  4.   

    你干脆在DBGrid的数据集的AfterScrol下面写代码
    Edit1.Text:=DataSet.FieldByName('XXXX').asstring;
    Edit2.Text:=DataSet.FieldByName('XXXX').asstring;
    或者双击时候写也一样
      

  5.   


    uses unit1;//
    procedure Txuanzechanpinxinghaofm.DBGrid1DblClick(Sender: TObject);
    begin
      while not adoquery1.eof do
     begin
    form1.Edit2.Text:=adoquery1.FieldByName(DBGrid1.Columns.Items[1].FieldName).AsString;
    form1.Edit6.Text:=adoquery1.FieldByName(DBGrid1.Columns.Items[0].FieldName).AsString;//
     Close;
    end;
     end;//有可能在只有一条记录的时候或者是dbgrid最后一条记录的时候不响应事件