Hallo,
das ärgerliche Verhalten wird durch den virtuellen Modus der ListView verursacht - mit der Standard-ListView tritt es nicht auf. Leider habe ich für dein Problem momentan keine Lösung parat, bin aber zuversichtlich, dass es eine gibt. Vielleicht finde ich am Wochenende die Zeit um mich damit zu beschäftigen.
Edit: War gar nicht so schwer. Tracking-Artefakte beim Drag&Drop können zuverlässig beim EndDrag() beseitigt werden.
Delphi-Quellcode:
procedure TfrmMain.LVDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := (Sender is TListView)
and (Source is TListView)
and Assigned((Sender as TListView).GetItemAt(X, Y));
end;
procedure TfrmMain.LVEndDrag(Sender, Target: TObject; X, Y: Integer);
begin
with Sender as TWinControl do Invalidate;
with Target as TWinControl do Invalidate;
end;
Freundliche Grüße