Hallo zusammen!
Ich nutze den folgenden Code von den Schweizern:
Delphi-Quellcode:
if (Sender = Source) then
with TListView(Sender) do
begin
DropItem := GetItemAt(X,Y);
CurrentItem := Selected;
while (CurrentItem <> nil) do
begin
NextItem := GetNextItem(CurrentItem, SdAll, [IsSelected]);
if (DropItem = nil) then
DragItem := Items.Add
else
DragItem := Items.Insert(DropItem.Index);
DragItem.Assign(CurrentItem);
CurrentItem.Free;
CurrentItem := NextItem;
end;
end;
Anscheinend wird beim
Assign
- im Gegensatz zu dem, was in der Hilfe steht, AUCH der Index kopiert, so dass die durch Drag&Drop vorgenommene Veränderung nicht bzw. falsch übernommen wird.
Habt Ihr das auch schon mal gehabt!?
Gibt's da Workarounds!? Der Index ist ja leider nicht "von Hand" gesetzt werden.
Viele Grüße,