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 Treeview Knoten verschiben incl. Data (https://www.delphipraxis.net/34551-treeview-knoten-verschiben-incl-data.html)

lordcroc 24. Nov 2004 16:04


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:
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;
mfg lordcroc

Muetze1 24. Nov 2004 21:05

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

lordcroc 24. Nov 2004 22:32

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