Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
Delphi 2007 Professional
|
Re: Virtual TreeView Nodes vertauschen (MoveUp/MoveDown)
7. Apr 2009, 18:54
Hi torud,
auch dir Dank für die Hilfe. Ich hab das pdf noch mal durchstöbert. Dabei ist mir aufgefallen, dass ich MoveTo wirklich übersehen hatte. Keine Ahnung warum.
Dein erster Code ist schon korrekt. MoveTo gibt es in überladener Version mit dem Aufruf für die Angabe eines Knotens sowie eines VTree als Ziel.
Dieser Code:
vst.MoveTo(Node,vst,amInsertAfter,false);
verschiebt den Node in das VTree vst an die letzte (amInsertAfter) Stelle (wobei vst der eigene Tree ist). Es wird also die Methode:
procedure MoveTo(Node: PVirtualNode; Tree: TBaseVirtualTree; Mode: TVTNodeAttachMode; ChildrenOnly: Boolean); overload;
verwendet.
In deinem zweiten Beispiel rufst du wie folgt auf:
vst.MoveTo(Node,vst.GetPrevious(Node),amInsertBefore,false);
Da wird dann diese Methode verwendet:
procedure MoveTo(Source: PVirtualNode; Target: PVirtualNode; Mode: TVTNodeAttachMode; ChildrenOnly: Boolean); overload;
Ich denke mal, da steckt das ganze Geheimnis. Ob vor dem Update die Methode überladen war kann ich aber auch nicht sagen. Ich denke mal eher ja.
Ich hatte ganz vergessen meine Frage als beantwortet zu kennzeichen. Das werd ich jetzt nachholen. Besten Dank an euch beide,
bis die Tage
oki
42
|