Einzelnen Beitrag anzeigen

Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#8

Re: ListView mehrere Items verschieben

  Alt 16. Jan 2008, 15:00
Hallo,

die folgende Prozedur arbeitet mit einem Objekt zur Zwischenspeicherung, sie könnte annähernd Deinen Anforderungen entsprechen. Du solltest aber noch prüfen ob alle Randbedingungen abgefangen werden
Delphi-Quellcode:
procedure MoveMultiSelectLVItem(LV: TListView;iDest: Integer);
var vLV : TListView;
    vListItems : TListItems;
    aItem : TListItem;
    z,iTempDest : Integer;
begin
  vLV := TListView.CreateParented(THandle(-3));
  vListItems := TListItems.Create(vLV);
  try
  iTempDest := iDest;
  for z := LV.Items.Count - 1 downto 0 do
    if LV.Items[z].Selected then
      begin
      aItem := vListItems.Add;
      aItem.Assign(LV.Items[z]);
      if z < iDest then
        dec(iTempDest);
      LV.Items[z].Delete;
      end;
  for z := 0 to vLV.Items.Count - 1 do
    begin
    aItem := LV.Items.Insert(iTempDest);
    aItem.Assign(vLV.Items[z]);
    aItem.Selected := True;
    end;
  finally
    vLV.Free;
    vListItems.Free;
  end;
end;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat