![]() |
Treeview Knoten verschiben incl. Data
Hallo,
will in einem Treeview Knoten verschieben, was auch ganz gut klappt, das Problem ist das an jedem Knoten bei mir im Data property ein Pointer auf ein selbstdefinirten Record zeigt, und ich nicht weiss wie ich diesen mit verschiebe. Zum verschieben benutze ich folgende Routinen.
Delphi-Quellcode:
mfg lordcroc
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X,
Y: Integer); var ToDeleteItem, DropItem, CurrentItem, NextItem: TTreeNode; ChildCount, Childrun: Integer; begin if Sender = Source then begin DropItem := TreeView1.GetNodeAt(X, Y); CurrentItem := TreeView1.Selected; ToDeleteItem := CurrentItem; NextItem := TreeView1.Items.Insert(DropItem, CurrentItem.Text); DropItem := NextItem; ChildCount := TreeView1.Selected.Count; for Childrun := 1 to ChildCount do begin CurrentItem := TreeView1.Selected.GetFirstChild; NextItem := TreeView1.Items.AddChild(DropItem, CurrentItem.Text); TreeView1.Items.Delete(CurrentItem); end; ToDeleteItem.Delete; end; end; procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Sender = TreeView1; end; |
Re: Treeview Knoten verschiben incl. Data
Moin!
1. Du verschiebst bzw. fässt als unterste Ebene ja die TTreeNode Instanzen an - und so lange du diese Instanz verschiebst, wird der Data Pointer mit bewegt. 2. Warum nutzt du nicht einfach die Methode MoveTo() des zu verschiebenen TreeNodes? Dieser verschiebt diesen samt vielleicht vorhandener Childknoten an die neue Stelle... (warum so schwer, wenn es auch einfach geht) MfG Muetze1 |
Re: Treeview Knoten verschiben incl. Data
Supi Danke @Muetze1,
funktioniert wunderbar, warum so kompliziert wenn es auch einfacher geht. mfg lordcroc |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 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