比如有两个cxgrid,他们的DBTableview绑定同一个表(主键:id  普通字段:name)。如何实现从cxgrid1里面拖拽一条记录到cxgrid2中的时候,cxgrid2增加拖拽的那条记录。最好有实现代码。--!纠结啊,弄了一天都没弄出来。

解决方案 »

  1.   

    我已经会拖拽了,只不过如何判断拖拽的数据是不是来自cxgrid  在dragover中写到if(sender =TcxGrid)报错--!
      

  2.   

    自顶一下,在dragdrop事件中写了如下代码if (Source is cxGrid1DBTableView1) and (Sender is TCxGrid) then
      begin
      ADOquery2.Append;
      ADOQuery2.FieldByName('GoodID').AsInteger:=ADOQuery1.FieldValues['GoodID'];
      end;但是报错--!
      

  3.   

    换了以下代码procedure TBilloperaForm.cxGrid2DBTableView1DragDrop(Sender,
      Source: TObject; X, Y: Integer);
    begin
      if (Source = cxGrid1DBTableView1) and (Sender is TCxGrid) then
      begin
      ADOquery2.Append;
      ADOQuery2.FieldByName('GoodID').AsInteger:=ADOQuery1.FieldValues['GoodID'];
      end;
    end;不报错但是不管用
      

  4.   


    var
      v: integer;
      s: string;procedure TForm1.FormCreate(Sender: TObject);
    begin
      ClientDataSet1.CreateDataSet;
      ClientDataSet1.Insert;
      ClientDataSet1.Fields[0].AsInteger:= 1;
      ClientDataSet1.Fields[1].AsString:= 'a';
      ClientDataSet1.Post;
      
      ClientDataSet2.CreateDataSet;
      ClientDataSet2.Insert;
      ClientDataSet2.Fields[0].AsInteger:= 2;
      ClientDataSet2.Fields[1].AsString:= 'b';
      ClientDataSet2.Post;  cxView2.DragMode:= dmAutomatic;
    end;procedure TForm1.cxView1DragDrop(Sender, Source: TObject; X,
      Y: Integer);
    begin
      ClientDataSet1.Insert;
      ClientDataSet1.Fields[0].AsInteger:= v;
      ClientDataSet1.Fields[1].AsString:= s;
      ClientDataSet1.Post;
    end;procedure TForm1.cxView2StartDrag(Sender: TObject;
      var DragObject: TDragObject);
    begin
      v:= ClientDataSet2.Fields[0].AsInteger;
      s:= ClientDataSet2.Fields[1].AsString;
    end;procedure TForm1.cxView1DragOver(Sender, Source: TObject; X,
      Y: Integer; State: TDragState; var Accept: Boolean);
    begin
      if Source.ClassType = TcxDragControlObject then
        Accept:= true
      else Accept:= false;
    end;
      

  5.   

    已测试过OK, 只不过是CDS, 非QUERY