有dbgrid1 和dbgrid2两个数据网格,我想要按钮实现,当我点击按钮的时候,清除dbgrid2 中的记录后 
让dbgrid1中的选中记录添加到dbgrid2中, 
具体该怎么操作,我的做法是建两个表,先把当前记录插入表2中 让dbgrid2显示表2的数据 
我不知道如何表示dbgrid的当前选中的记录。 
太水了    大侠们教我怎么做,最好有源码!!或者实例!!!

解决方案 »

  1.   

    例如:ADOQUERY是连源表( DBGrid连ADOQUERY),ADOQUERY2是连目标表(dbgrid2连接ADOQUERY2)var
    i:integer;
    begin
      {------如果用户有选择了数据--------}
     if DBGrid.SelectedRows.Count>0 then begin
      ADOQuery.DisableControls;{数据源是aTABLE表}
     for i := 0 to DBGrid.SelectedRows.Count- 1 do begin
        ADOQuery.GotoBook(pointer(DBGrid.SelectedRows.Items[i]));
        with ADOQuery2 begin
          append;
          FieldByName('x_a').AsString:= adoquery.FieldByName('x_a').AsString;
          FieldByName('x_b').AsString:= adoquery.FieldByName('x_b').AsString;
          post;
        end;
    end;
      

  2.   

    修正一下,在DBGrid的双激事件中写入以下代码;procedure TForm1.DBGrid1DblClick(Sender: TObject);
    var
    i:integer;
    begin
      {------如果用户有选择了数据--------}
     if DBGrid.SelectedRows.Count>0 then begin
       for i := 0 to DBGrid.SelectedRows.Count- 1 do begin {DBGrid.SelectedRows.Count 用户选择了记录总数}
        ADOQuery.GotoBook(pointer(DBGrid.SelectedRows.Items[i])); 
        with ADOQuery2 begin
          append;
          FieldByName('x_a').AsString:= adoquery.FieldByName('x_a').AsString;
          FieldByName('x_b').AsString:= adoquery.FieldByName('x_b').AsString;
          post;
        end;
      end;//for i
     end;
    end;