Einzelnen Beitrag anzeigen

Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#11

AW: TVirtualStringTree: nachträglich Objekt am Knoten tauschen

  Alt 25. Sep 2010, 18:41
OK, verstehe. Hatte das ohne Ableitung versucht, weil ich dachte, das kommt aufs Gleiche raus.
Jetzt kompiliert das Ganze, aber getauscht werden die Knoten dennoch nicht.
Delphi-Quellcode:
procedure TForm1.VSTDragDrop(Sender: TBaseVirtualTree; Source: TObject;
  DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState;
  Pt: TPoint; var Effect: Integer; Mode: TDropMode);
var
  AttachMode : TVTNodeAttachMode;
  lNewData : PTreeData;
  lNode : PVirtualNode;
  begin
  case Mode of
    dmAbove: AttachMode := amInsertBefore;
    dmBelow: AttachMode := amInsertAfter;
    dmOnNode: begin
                lNode:= VST.FocusedNode;
                lNewData := VST.GetNodeData(Sender.DropTargetNode);
                TVirtualStringTreeEx(VST).ReplaceNodeData(lNode, lNewData);
                //AttachMode := amInsertAfter;
              end;
    else
      exit;
  end;

  //ohne diese Zeile verschwindet der gezogene Knoten einfach - evtl. liegt hier der Fehler
  Sender.ProcessDrop(DataObject, lNode, Effect, AttachMode);
end;
Ich habe mal ein neues Projekt aufgesetzt, das nur zum Testen von diesem Problem gedacht ist (VST + Button).
Es befindet sich im Anhang. Vielleicht hilft das ja zum Nachvollziehen des Fehlers und erspart das Aufsetzen eines neuen Projektes.

Vielen Dank für die Hilfe!
Angehängte Dateien
Dateityp: zip VST-Test.zip (4,3 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat