Autor Beitrag
JanHH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46
Erhaltene Danke: 1



BeitragVerfasst: Do 27.02.03 05:33 
Hallo,

habe ein Problem mit TTreeView: Wie implementiere ich drag&drop, so das man markierte Knoten an andere Baumknoten anhängen kann? Wie man Ereignis abfragt und die markierten Knoten ermittelt weiss ich alles, aber wie konkret kopiere (weiss ich auch noch) ich die Knoten INKLUSIVE ihrer Child-Knoten (ab da weiss ich jetzt nicht weiter) an die neue Stelle? Und, vor allem, noch komplizierter, wie lösche ich die urpsrünglichen Knoten nach dem Verschiebevorgang aus dem Baum, und zwar wieder INKLUSIVE der child-nodes?

Ich vermute ja fast das es da eine vorgefertigte Trivial-Lösung für gibt, die ich bloss nicht finde, und die Delphi-Hilfe hiflt einem bei TreeView auch nicht wirklich weiter.. wäre über Erklärungen sehr dankbar.

Grüße
Jan
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 27.02.03 09:02 
Hallo Jan und Willkommen hier im Forum,

Du hast geschrieben das Du die Node incl. der Childe-Node an die neue Position kopieren und anschließend bei der alten Position löschen willst. Ich würde da anders dran gehen: Versuch doch einfach mal bei der Node welche Du verschieben möchtest die Eingeschaft Owner zu ändern. Also einfach auf das neue Ziel-Node verweisen. Dadurch sollte sich die Node incl. der Child-Nodes verschoben haben ohne das Du es kopieren und löschen musst!

Gruß
TINO
JanHH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46
Erhaltene Danke: 1



BeitragVerfasst: Do 27.02.03 17:25 
Hallo,

vielen Dank, dachte erst, ach SO geht das, aber leider.. sagt mir Delphi zu meinem Versuch, das so zu machen, das einer read-only-Eigenschaft kein Wert zugewiesen werden kann. Habe allerdings auch irgendwie nicht auf der Reihe gehabt das das eigentlich eine clx-Anwendung ist, verhält sich der TreeView da anders? oder bin ich einfach zu doof dazu?

Gruß und Dank,
Jan
FD-83
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Do 27.02.03 18:18 
Idee ist aber nicht verkehrt!

Statt der Eigenschaft Owner etwas zuzuweisen musst du lediglich die Methode MoveTo Benutzen:
ausblenden Quelltext
1:
procedure MoveTo(Destination: TTreeNode; Mode: TNodeAttachMode);					


Der Übergibst du einfach den neuen Parent Node.

Gruss Frederik
JanHH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46
Erhaltene Danke: 1



BeitragVerfasst: Do 27.02.03 22:20 
Juhu, es funktioniert!

Allerbesten Dank,
Jan
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Sa 01.03.03 11:53 
Natürlich, sorry, hab es übersehen mit der Read-Only-Eigenschaft. Die MoveTo-Methode ist natürlich richtig :-)

Gruß
TINO