我想通过点击dbgrik中的一个数据,使之获得焦点,然后通过一个按钮‘修改’,来修改其中的字段(是这个获得焦点的行),然后回传,请问怎么写代码,多谢了。

解决方案 »

  1.   

    点击dbgrik中的一个数据,使之获得焦点,获得焦点的行其实就是当前记录行啊,通过一个按钮‘修改':
    dbgrid.datasource.dataset.edit;然后回传:
    dbgrid.datasource.dataset.ApplyUpdate(0);
      

  2.   

    在点击‘修改’按钮前,虽然获得焦点,但dbgrid是不能修改的,只有点击之后才能修改
      

  3.   

    比如使用table与dbgrid控件时:
    procedure Taddform.Button1Click(Sender: TObject); //修改键激活Dbgrid
    begin
      Dbgrid1.Enable:=true;
    end;procedure Taddform.DBGrid1CellClick(Column: TColumn);//提取某条记录的某字段值
    begin
      addform.edit1.Text:=fieldbyname('stnName').asstring;
      ......
    end;procedure Taddform.Button2Click(Sender: TObject); //保存
    begin
    with Table1 do
    begin
     try
      append;
      fieldbyname('stnName').asstring:=edit1.text;
      ......
      post;
      showmessage('保存成功');
     except
      cancel;
      showmessage('存盘错误');
     end;
    end;
    end;
      

  4.   

    你可以通过这样提取选中的记录的某个字段的值:
    DBGrid1.DataSource.DataSet.GotoBook(pointer (DBGrid1.SelectedRows.Items[0])) ; //定位到你选中的记录
    然后提取字段值:
      edit1.text:=table1.fieldbyname('stnName').asstring