![]() |
VirtualTreeView: Problem mit MoveTo - Wann ist schluß?
Ich habe in meinem Programm eine VirtualTreeView mit mehreren Elementen 0. Ordnung der mehrere Elemente 1. Ordnung jeweils untergeordnet sind.
Es gibt einen Button mit dem man ein Objekt um eine Stelle nach unten bewegen kann. Das Problem war zu erkennen wann das nicht mehr geht. Bei den Elementen 1. Ordnung ging dies relativ einfach mit:
Delphi-Quellcode:
Bei Elementen der 0. Ordnung geht das natürlich nicht, weil die Node im Fokus ja nur die BottomNode auf ihrem Level ist.
if (VST.FocusedNode<>VST.BottomNode)
Ich habe jetzt eine Stunde unzählige Sachen versucht, aber wenn man nach unten drückt dann springt das letzte Element 0. Ordnung eben auch wieder nach ganz oben. Bewegt werden die Objekte 0. Ordnung mit folgendem Code:
Delphi-Quellcode:
VST.MoveTo(VST.FocusedNode, VST.GetNextSibling(VST.FocusedNode), amInsertAfter, false)
|
Re: VirtualTreeView: Problem mit MoveTo - Wann ist schluß?
Um die nächste/vorherige Node auf einem bestimmten Level zu bekommen, kannst du folgende Funktionen nutzen:
Delphi-Quellcode:
Beide Funktionen liefern NIL zurück, wenn keine Node mehr auf dem gewünschten Level existieren.
function TBaseVirtualTree.GetNextLevel(Node: PVirtualNode; NodeLevel: Cardinal): PVirtualNode;
function TBaseVirtualTree.GetPreviousLevel(Node: PVirtualNode; NodeLevel: Cardinal): PVirtualNode; |
Re: VirtualTreeView: Problem mit MoveTo - Wann ist schluß?
Danke dir, die Lösung hab ich durch probieren ein wenig später am Abend noch gefunden, jedoch vergessen sie hier zu posten :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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