关于cxGrid是否存在拖动行以改变其记录位置的方法

whbniit 2011-02-17 09:32:04
想请教一下各位o(∩_∩)o cxGrid中的数据并非绑定数据集,而是代码中添加
我想实现在cxGrid中拖动换行,可是不明白具体怎么实现o(∩_∩)o 希望各位
高手不吝赐教一下o(∩_∩)o
...全文
273 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
whbniit 2011-02-18
  • 打赏
  • 举报
回复
kye_jufei 的回答是基于数据集绑定的基础上吧?
我也明白lichunlin1的意思o(∩_∩)o ,可是需要使用cxGrid的其他功能o(∩_∩)o 所以不能替换成其他控件
lichunlin1 2011-02-17
  • 打赏
  • 举报
回复
不知楼主的意思是否要行位置变换,假如这样的话可否通过数据集的动态排序来做这项工作,而不必限于CXGRID,当然列排序应该是通过控件解决。
kye_jufei 2011-02-17
  • 打赏
  • 举报
回复
//实现鼠标拖动多选,必须设置
//cxGrid1DBTableView1.DragMode=dmAutomatic;
//cxGrid1DBTableView1.OptionsBehavior.DragFocusing:=dfDragOver;

qsRow,jsRow:Integer;//用于保存行位置

procedure TBase_f.cxGrid1DBTableView1StartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
qsrow:=MainQuery.RecNo; //保存起始行位置
end;

procedure TBase_f.cxGrid1DBTableView1DragOver(Sender, Source: TObject;
X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept:=True;
end;

procedure TBase_f.cxGrid1DBTableView1EndDrag(Sender, Target: TObject;
X, Y: Integer);
begin
jsRow:=Main.RecNo;//结束行的位置
if qsrow=jsrow then Exit;//如果相同则直接退出
//设置临时变量保存记录内容,删除当前位置记录内容...进一步操作
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧