请问如何在LISTVIEW控件上实现图标拖动的效果
   
   {如把桌面的>排列图标>自动排列(不选)时,图标可以自由拖动到任何位置的效果}
 
       请教?

解决方案 »

  1.   

    每个item都有left和top属性只要设置坐标,放哪儿都可以。
      

  2.   

    设置 ListView的 DragMode 为 dmAutomatic ,uses CommCtrl;// OnDragOver事件
    procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := Sender = Source;
    end;
    // OnDragDrop事件
    procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    begin
      ListView_SetItemPosition(ListView1.Handle, ListView1.Selected.Index, X, Y);
    end;
      

  3.   

    对对,只要设Left和Top就行了,不用uses CommCtrl单元,
    // OnDragDrop事件
    procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    begin
      ListView1.Selected.Left := X;
      ListView1.Selected.Top := Y;
    end;