我需要作的是点击DBGRID的某条数据,在相应的EDIT控件显示,能够修改和删除记录。

解决方案 »

  1.   

    在与dbgrid相关联的数据集的AfterScroll事件中编写代码即可
      

  2.   

    那不是很简单,点那条就知道你的dataset读的是那条记录吧
    同时把需要的字段显示在edit里不就行了?
      

  3.   

    query 或 Table 的游标是和dbGrid同步的
    直接 edit.text := query['XX'];
      

  4.   

    在dbgrid的数据源DataSource的OnDataChange事件里写,如下procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
    var
            n : Integer;
    begin
            n := 0;
            Edit1.Text := DataSource1.DataSet.Fields[n].AsString;//n为显示当前行第几列的数据
    end;
      

  5.   

    procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
    begin
      //取Dataset值负给Edit1
    end;
      

  6.   

    procedure TForm1.ADOQuery1BeforeScroll(DataSet: TDataSet);
    begin
      if DataSet.State =dsEdit then
      begin
        //将Edit值负给DataSet;
        ...
        DataSet.Post;
      end;
    end;
      

  7.   

    可以使用DBEdit,把它的DataSource属性和DBGrid的DataSource属性设置为同一个DataSource就可以了,代码都不用写了
      

  8.   

    agree with madyak(无天) recommend DBEdit
      

  9.   

    STYun(天云) ( ) query 或 Table 的游标是和dbGrid同步的
    直接 edit.text := query['XX'];很好