提供点参看代码:
procedure TForm1.fghdDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  accept:=Source is TlistView
end;procedure TForm1.fghdDragDrop(Sender, Source: TObject; X, Y: Integer);
var
  PosPoint:TPoint;
begin
  PosPoint.x:=x;
  PosPoint.y:=Y;
  (Source As TListView).Selected.SetPosition(PosPoint);
end;procedure TForm1.fghdMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if button=mbleft then
  begin
    with sender as TListview do
    begin
      if GetItemAt(x,y)<>nil then
        begindrag(false);
    end;
  end;
end;楼上说的可以,你在拖动事件中改变鼠标的图标。