Delphi的TListView控件拖放选定行操作

本文介绍了使用Delphi语言通过拖放操作实现TListView控件中选定行移动的方法,包括控件属性配置和事件响应代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.tansoo.cn/?p=401


Delphi的TListView控件拖放选定行操作的例子,效果图如下:TListView控件拖动选定行到指定位置

具体实现步骤:

一、新建一个Delphi工程,在窗体上放置一个TListView控件(在Win32面板),设置ListView1的属性:

ViewStyle设置为vsReport
DragMode设置为dmAutomatic
RowSelect设置为True

二、添加ListView1的OnDragOver事件的响应代码:

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

三、添加ListView1的OnDragDrop事件的响应代码:

procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  aItem, bItem: TListItem;
begin
  if(Source is TListView) then
  begin
    bItem := (Source as TListView).Selected;
    aItem:=(Source as TListView).Items.Insert
            ((Source as TListView).Items.IndexOf((Source as TListView).GetItemAt(X,Y)));
    aItem.Assign(bItem);
    (Source as TListView).Selected.Delete;
    aItem.Selected := True;
  end;
end;

最后,编译运行就可以了(本例在Delphi7测试成功)。

 

如果先select多个,然后再拖动呢?

转载于:https://www.cnblogs.com/CodeGear/p/5222257.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值