![]() |
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:
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.
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; |
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 19:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz