![]() |
Nodes verschieben im VirtualTreeView
Hallo,
ich programmiere gerade mit dem VirtualTreeView von Mike Lischke. Meine Anwender möchten in der Baumansicht nodes verschieben. kann mir bitte jemand erklären wie man das programmiert. Gruß und Danke! Markus |
Re: Nodes verschieben im VirtualTreeView
Versuch mal mit der Eigeschaft :bouncing4: node.index
|
Re: Nodes verschieben im VirtualTreeView
danke!
ich schaue mal. aber vielleicht kann jemand noch mehr infos geben! mir ist auch nicht klar, wie ich das verschieben an sich realisiere (drag and drop wenn ja wie) oder ganz anders!? |
Re: Nodes verschieben im VirtualTreeView
Schau Dir mal die OLE-Demo von vt an. Dort ist Drag & Drop beschrieben.
|
Re: Nodes verschieben im VirtualTreeView
ist aber bei mir nur eine exe ohne delphi-code!
wo ist die beschreibung? |
Re: Nodes verschieben im VirtualTreeView
Wenn Du Dir das Paket "SourceOnly" herunterlädst, ist der Quelltext dabei.
|
Re: Nodes verschieben im VirtualTreeView
habe ich gemacht!
sind aber nur packages beim entpacken zum vorschein gekommen, keine demos. |
Re: Nodes verschieben im VirtualTreeView
Liste der Anhänge anzeigen (Anzahl: 1)
Komisch, früher waren sie mal drin.
Nimmst Du die aus dem Anhang hier: |
Re: Nodes verschieben im VirtualTreeView
vielen Dank!!!!!
|
Re: Nodes verschieben im VirtualTreeView
ich blicke es nicht, wie das funktioniert! :(
bräuchte noch paaar tipps! |
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:00 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