procedure TForm3.cxButton_moveDownClick(Sender: TObject); //下移 var i: Integer; recNo: Integer; //记录下位置 strName, stype, saddress, num: string; begin //i := cxGrid1DBTableView1.Controller.SelectedRows[0].RecordIndex; strName := cxGrid1DBTableView1.DataController.DataSet.FieldByName('sname').AsString; stype := cxGrid1DBTableView1.DataController.DataSet.FieldByName('stype').AsString; saddress := cxGrid1DBTableView1.DataController.DataSet.FieldByName('saddress').AsString; num := cxGrid1DBTableView1.DataController.DataSet.FieldByName('num').AsString; cxGrid1DBTableView1.DataController.DataSet.Delete; if cxGrid1DBTableView1.DataController.FocusedRecordIndex = cxGrid1DBTableView1.DataController.RecordCount - 1 then begin cxGrid1DBTableView1.DataController.Append; end else begin cxGrid1DBTableView1.DataController.MoveBy(1); recNo := cxGrid1DBTableView1.Controller.SelectedRows[0].RecordIndex; cxGrid1DBTableView1.DataController.Insert; end; cxGrid1DBTableView1.DataController.DataSet.FieldByName('sname').Value := strName; cxGrid1DBTableView1.DataController.DataSet.FieldByName('stype').Value := stype; cxGrid1DBTableView1.DataController.DataSet.FieldByName('saddress').Value := saddress; cxGrid1DBTableView1.DataController.DataSet.FieldByName('num').Value := num; cxGrid1DBTableView1.DataController.DataSet.Post; //cxGrid1DBTableView1.DataController.DeleteRecord(i); //cxGrid1DBTableView1.DataController.RecNo := recNo - 1; end; procedure TForm3.cxButton_moveUpClick(Sender: TObject); //上移 var i: Integer; recNo: Integer; //记录下位置 strName, stype, saddress, num: string; begin //i := cxGrid1DBTableView1.Controller.SelectedRows[0].RecordIndex; strName := cxGrid1DBTableView1.DataController.DataSet.FieldByName('sname').AsString; stype := cxGrid1DBTableView1.DataController.DataSet.FieldByName('stype').AsString; saddress := cxGrid1DBTableView1.DataController.DataSet.FieldByName('saddress').AsString; num := cxGrid1DBTableView1.DataController.DataSet.FieldByName('num').AsString; recNo := cxGrid1DBTableView1.Controller.SelectedRows[0].RecordIndex; if recNo = 0 then Exit; cxGrid1DBTableView1.DataController.MoveBy(-1); cxGrid1DBTableView1.DataController.Insert; cxGrid1DBTableView1.DataController.DataSet.FieldByName('sname').Value := strName; cxGrid1DBTableView1.DataController.DataSet.FieldByName('stype').Value := stype; cxGrid1DBTableView1.DataController.DataSet.FieldByName('saddress').Value := saddress; cxGrid1DBTableView1.DataController.DataSet.FieldByName('num').Value := num; cxGrid1DBTableView1.DataController.DataSet.Post; cxGrid1DBTableView1.DataController.RecNo := recNo + 2; cxGrid1DBTableView1.DataController.DataSet.Delete; cxGrid1DBTableView1.DataController.RecNo := recNo; //cxGrid1DBTableView1.DataController.DeleteRecord(i + 1); end;