![]() |
Re: Listview Zeilen färben, On Custom DrawItem
Statt Insert() und Delete() könntest du Move() verwenden. Wenn die Selektion zusammenhängend ist, dann vielleicht so:
Delphi-Quellcode:
Andernfalls müssen die Items einzeln verschoben werden.
procedure MoveStrings(s: TStrings; iFrom, iTo, iCount: Integer);
var i: Integer; begin s.BeginUpdate; try if iTo < iFrom then for i := 1 to iCount do s.Move(Pred(iFrom + iCount), iTo) else for i := 1 to iCount do s.Move(iFrom, Pred(iTo)) ; finally s.EndUpdate; end; end; |
Re: Listview Zeilen färben, On Custom DrawItem
Danke für die Hilfe Marabu...
Dein Source geht mit kleiner Abwandlung für ein Item. Für mehrere schaff ich es nur wenn "ito < ifrom" Wenn ich mal mehr Zeit habe schaue ich mir das nochmal genauer an, aber für jetzt hab ich es auf ein Item begrenzt. Hier der jetztige Code
Delphi-Quellcode:
Vielen Dank für die Anregungen Marabu :thumb:
procedure TfDLMain.ListViewDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure MoveStrings(s: TStrings; iFrom, iTo, iCount: Integer); var i: Integer; begin s.BeginUpdate; try if iTo < iFrom then s.Move(Pred(iFrom+iCount), iTo) else s.Move(iFrom, iTo); finally s.EndUpdate; end; end; var DragItem, DropItem, CurrentItem, NextItem: TListItem; i, Index1, Index2, Index3 :Integer; begin if Sender = Source then begin if ListView.SelCount = 1 then begin for i:= 0 to ListItems.Count-1 do begin if ListItems[i].Selected = true then begin DropItem := ListView.GetItemAt(X, Y); if DropItem <> nil then begin Index1 := i; Index2 := DropItem.Index; Index3 := ListView.SelCount; ListItems[i].Selected := false; MoveStrings(Values,Index1,Index2,Index3); end; end; end; ListView.Invalidate; end else MessageDlg('Bitte zum verschieben von mehreren Items das "Move Up", bzw. das "Move Down" verwenden.', mtInformation, [mbOK], 0); end; end; Gruß Ruben |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:27 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-2025 by Thomas Breitkreuz