![]() |
Re: Nodes verschieben im VirtualTreeView
ich habe getrickst:
Delphi-Quellcode:
so funktioniert es!
procedure TFormMain.TreeViewBaumClick(Sender: TObject);
var Node: PVirtualNode; begin Node:=TreeViewBaum.FocusedNode; SourceNode := Node; end; procedure TFormMain.TreeViewBaumDragOver(Sender: TBaseVirtualTree; Source: TObject; Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode; var Effect: Integer; var Accept: Boolean); begin Accept := true; end; procedure TFormMain.TreeViewBaumDragDrop(Sender: TBaseVirtualTree; Source: TObject; DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState; Pt: TPoint; var Effect: Integer; Mode: TDropMode); var Data: PTreeData; Dataziel : TTreeData; begin Data:=TreeViewBaum.GetNodeData(sourcenode); //Mit dem Trick kann man PTreedata in TTreedata konvertieren Dataziel.FCaption := Data.FCaption; //Zuletzt markierter Knoten an Mausposition hinzufügen AddNode(TreeViewBaum,Sender.DropTargetNode,Dataziel); TreeViewBaum.DeleteNode(SourceNode); TreeViewBaum.Invalidate; end; ein problem habe ich noch. der "verschobene" node ist nicht sofort "anklickbar"! weiß jemand warum? habe noch ein problem: die unterknoten werden nicht mit verschoben. hat jemand ne idee wie man das hinbekommt? |
Re: Nodes verschieben im VirtualTreeView
ohje! manchmal ist die lösung so einfach:
Delphi-Quellcode:
funzt! :cheers:
procedure TFormMain.TreeViewBaumDragOver(Sender: TBaseVirtualTree;
Source: TObject; Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode; var Effect: Integer; var Accept: Boolean); begin Accept := true; end; procedure TFormMain.TreeViewBaumDragDrop(Sender: TBaseVirtualTree; Source: TObject; DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState; Pt: TPoint; var Effect: Integer; Mode: TDropMode); var WSourceNode,WTargetNodeUr : PVirtualNode; begin (* Eigenschaften setzen für drag and drop: DragMode = dmAutomatic DragType = dtVCL *) WSourceNode := SourceNode; WTargetNodeUr := Sender.DropTargetNode; TreeViewBaum.MoveTo(WSourceNode,WTargetNodeUr,amAddChildLast,false); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 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 by Thomas Breitkreuz