Einzelnen Beitrag anzeigen

marcibaer

Registriert seit: 27. Sep 2006
Ort: Inden
74 Beiträge
 
Delphi XE2 Professional
 
#1

Listview-Einträge vertauscht nach Drag&Drop

  Alt 2. Okt 2012, 16:26
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,
Marc

Geändert von marcibaer ( 2. Okt 2012 um 16:36 Uhr)
  Mit Zitat antworten Zitat