我想把运行完的表单中的dbgrid的数据按行显示在文本框中(edit),即鼠标点哪行,哪行的数据就显示在文本框中,例如:with adoquery1 do 
                  begin
                  close;
                  sql.clear;
                  sql.Add('select * from yhb');
                  open;
                  edit1.Text :=FieldValues['姓名'];
                  edit2.Text :=FieldValues['年龄'];
                  edit3.Text :=FieldValues['性别'];
                  end;
            这段代码就只能显示第一行的数据,其他行显示不出来,也就是说记录指针没有移动。       谁能告诉我咋样实现这个功能阿????(上面代码可能也错的,没办法刚刚学)

解决方案 »

  1.   

    晕,你要在鼠标点击时候取出一个限制条件,如ID,然后在查询sql.Add('select * from yhbw where ID'=+....);
      

  2.   

    用dbedit 如果不想编辑可以把readonly设为true
      

  3.   

    另外edit1.Text :=FieldValues['姓名'];也不对把
    edit1.Text :=FieldValues('姓名').AsString;
      

  4.   

    在dbgrid的oncellclick事件里编写。edit1.text:=adoquery1.fieldbyname('姓名').asstring;
      

  5.   

    procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
    begin   edit1.Text := (sender as TDataSource).DataSet.FieldByName('姓名').AsString;
       edit2.Text := (sender as TDataSource).DataSet.FieldByName('年龄').AsString
    end;
      

  6.   

    写在OnDataChange事件里,就能达到你想到的;
    如楼上所说的!