Einzelnen Beitrag anzeigen

DelphiforEver

Registriert seit: 14. Jan 2008
3 Beiträge
 
#1

ListView mehrere Items verschieben

  Alt 14. Jan 2008, 00:28
Hallo,
Ich habe ein Problem ich möchte in einem ListView mehrere Items, welche Selected sind nach oben und unten verschieben.
Momentan kann ich jedoch nur 1 selektiertes Item nach oben und unten verschieben, es geht also nicht mit mehreren gleichzeitig.
Ich wollte Fragen, ob man die folgende Prozedure auch so erweitern kann, sodass man mehrere Items gleichzeitig verschschieben kann?

Delphi-Quellcode:
procedure MoveLVItem(LV: TListView;Direction: TSearchDirection);
var aItem, NextItem,TmpItem : TListItem;
begin
  with LV do
  begin
   if IsEditing or not Assigned(ItemFocused) then
      exit;//raus wenn Item editiert wird oder kein Item selektiert ist
    aItem := ItemFocused;
    case Direction of
      sdAbove : if aItem.Index = 0 then
                  exit;//Erstes Item ist markiert > raus
      sdBelow : if aItem.Index = Items.Count-1 then
                  exit;//Letztes Item ist markiert > raus
    end;
    NextItem := GetNextItem(aItem,Direction,[isNone]);
    Items.BeginUpdate;
    try
      TmpItem := TListItem.Create(Items);
      TmpItem.Assign(NextItem);
      NextItem.Assign(aItem);
      aItem.Assign(TmpItem);
      aItem.Selected := NextItem.Selected;
      TmpItem.Free;
      NextItem.MakeVisible(True);
      ItemFocused := NextItem;
      Selected := NextItem;
    finally
      Items.EndUpdate;
    end;
  end;
end;
  Mit Zitat antworten Zitat