Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Listview Item per Button-Klick verschieben (https://www.delphipraxis.net/17153-listview-item-per-button-klick-verschieben.html)

Luckie 29. Feb 2004 00:20


Listview Item per Button-Klick verschieben
 
Ja, kann mir da mal eben jemand auf die Sprünge helfen? Ich habe da irgendwie ein Brett vor dem Kopf. Irgendwie will das nichts o, wie ich will:
Delphi-Quellcode:
procedure TForm1.SpinButton1DownClick(Sender: TObject);
var
  CurrIndex: Integer;
  NewItem: TListItem;
begin
  if ListView1.ItemIndex > 0 then
  begin
    CurrIndex := ListView1.ItemIndex;
    NewItem := Listview1.Items.Insert(CurrIndex+11);
    NewItem.Assign(ListView1.Items.Item[CurrIndex]);
    NewItem.Caption := Listview1.Items[CurrIndex].Caption;
    Listview1.Items.Delete(CurrIndex);
  end;
end;
Irgendwie löscht er nur den näcchsten Eintrag weg. Er soll aber den markierten Eintrag eins nach untenverschieben, also praktisch mit dem da drunter vertauschen.

Luckie 29. Feb 2004 00:27

Re: Listview Item per Button-Klick verschieben
 
OK. Hab's:
Delphi-Quellcode:
procedure ExchangeItems(lv: TListView; const i, j: Integer);
var
  tempLI: TListItem;
begin
  lv.Items.BeginUpdate;
  try
    tempLI := TListItem.Create(lv.Items);
    tempLI.Assign(lv.Items.Item[i]);
    lv.Items.Item[i].Assign(lv.Items.Item[j]);
    lv.Items.Item[j].Assign(tempLI);
    tempLI.Free;
    lv.Items[j].Checked := False;
  finally
    lv.Items.EndUpdate
  end;
end;

procedure TForm1.SpinButton1DownClick(Sender: TObject);
var
  CurrIndex: Integer;
  NewItem: TListItem;
begin
  if ListView1.ItemIndex >= 0 then
  begin
    CurrIndex := ListView1.ItemIndex;
    ExchangeItems(Listview1, CurrIndex, CurrIndex+1);
    Listview1.Items.Item[CurrIndex+1].Selected := True;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz