![]() |
ListView1DragDrop danach (selected=true)
wie kann ich das verschobene item nach dem verschieben (selected=true) markieren?
Delphi-Quellcode:
procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var DragItem, DropItem, CurrentItem, NextItem: TListItem; begin if Sender = Source then with TListView(Sender) do begin DropItem := GetItemAt(X, Y); CurrentItem := Selected; while CurrentItem <> nil do begin NextItem := GetNextItem(CurrentItem, SdAll, [IsSelected]); if DropItem = nil then DragItem := Items.Add else DragItem := Items.Insert(DropItem.Index); DragItem.Assign(CurrentItem); CurrentItem.Free; CurrentItem := NextItem; // NextItem.Focused; ??????????????? oder // CurrentItem.Selected:=true;??????????? funktioniert beides nicht end; end; end; |
Moin Aaron,
hast Du auch die Eigenschaft HideSelection auf false umgestellt (Defaultwert ist hier true)? |
ja, habe ich...
|
Hallo Aaron,
Dein Problem ist, das sowohl Nextitem und CurrentItem auf nil zeigen.
Delphi-Quellcode:
Gruß, Tom
procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var DragItem, DropItem, CurrentItem, NextItem: TListItem; begin if Sender = Source then with TListView(Sender) do begin DropItem := GetItemAt(X, Y); CurrentItem := Selected; while CurrentItem <> nil do begin NextItem := GetNextItem(CurrentItem, SdAll, [IsSelected]); if DropItem = nil then DragItem := Items.Add else DragItem := Items.Insert(DropItem.Index); DragItem.Assign(CurrentItem); CurrentItem.Free; CurrentItem := NextItem; // NextItem.Focused; <-- = NIL // CurrentItem.Selected:=true;?<-- = NIL end; end; end; |
hallo tom, vielen dank für deine antwort...
ich verstehe nicht wie du das meinst, denn ich benutze
Delphi-Quellcode:
überhaupt nicht, war eigentlich mehr als frage gedacht.
// NextItem.Focused; <-- = NIL
// CurrentItem.Selected:=true;?<-- = NIL zeig mir doch wie es funktioniert :firejump: |
kann mir das jemand zeigen, ist verdammt dringend?
|
Hallo Aaron,
Arbeite daran, und poste es Dir spätestens morgen Gruß, Tom |
super :dancer:
|
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Aaron,
:bouncing4: Hier die versprochene Lösung:
Delphi-Quellcode:
Gruß, Tom
procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var DragItem, DropItem, CurrentItem, NextItem: TListItem; begin if Sender = Source then begin with TListView(Sender) do begin DragItem := nil; DropItem := GetItemAt(X, Y); CurrentItem := Selected; while CurrentItem <> nil do begin NextItem := GetNextItem(CurrentItem, SdAll, [IsSelected]); if DropItem = nil then begin DragItem := Items.Add; end else begin DragItem := Items.Insert(DropItem.Index); end; DragItem.Assign(CurrentItem); CurrentItem.Free; CurrentItem := NextItem; end; if DragItem <> nil then DragItem.Selected:=true; end; end; end; procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept:=True; end; |
jepp.
großen Dank ... :bounce1: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 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