Hidiho,
ich hab da eine klassische TTreeView, die eine nutzerdefinierbare Hierarchie wiedergibt bzw. deren Änderung ermöglicht. Drag&Drop funktioniert zur Zeit gut. Im Drop geschieht im Kern das klassische
src.MoveTo(dest, naInsert);
. Falls man eine neue Hierarchieebene wünscht, muss man sich derzeit mit einem angehängten Kontextmenü behelfen und einen Untereintrag erzeugen, auf den man dann wiederum den eigentlich in die Ebene zu verschiebenden Eintrag fallen lassen kann.
Ich würde das gerne ändern. Es gibt da eine handvoll Useability- und Entwicklungsfragen, die zu klären sind
- Wie ermögliche ich dem Anwender zwischen dem bisherigen naInsert
und dem "neuen" naAddChild
zu unterscheiden? Ctrl+Drag? Oder Timer im DragOver (was ich derzeit erfolgreich getestet habe)
- Wie stelle ich diese Unterscheidung, im Baum dar? Irgendwie sollte der künftige Vorfahr-Knoten seine "Erwartung" anzeigen. Für naInsert reicht das Standardverhalten, um zu zeigen, "vor mir wird das verschobene Ding landen". Aber wie signalisiere ich das "als mein Kind wird das verschobene Ding landen"? Mir will da gerade gar nichts einfallen...
Hat einer von Euch da eine Idee, oder sowas bereits umgesetzt?
Sherlock