![]() |
Drag&Drop mit VirtualTreeView
Hallo,
ich nutze den VirtualTreeView von Herrn Lischke... Mein Problem ist das ich in meinem Programm Nodes innerhalb des VTVs verschieben muss, ich aber keine Ahnung habe, wie ich das anstellen soll, da der VTV komplexer ist als der Standard-TreeView... bitte helft mir... MfG Apollo13 |
Re: Drag&Drop mit VirtualTreeView
Wie es geht kann ich Dir noch nicht sagen, da ich heute vorhabe, in meinem VTV auch D&D-Funktionalität zu implementieren. Vielleicht dazu später mehr ;-)
Gruß Igotcha |
Re: Drag&Drop mit VirtualTreeView
Hi,
schau mal in die Demos (es gibt auch eine Drag&Drop-Demo) und schau dir vorallem mal die Dokumentation an. Wenn du ein wenig damit herumspielst und ein bisschen hartnäckig bist, wirst du so auf jedenfall zu einer Lösung kommen (bin ich auch *g*). ;) Chris |
Re: Drag&Drop mit VirtualTreeView
AAAAXXXXXXTTTTTTTTTT... ich kann jetz immerhin schon eine Node ziehen...aber beim einfügen bringt der ne exception weil der nach der eingefügten node keine weiteren objecte mehr findet...?!?!?!
Die Demos kenn ich schon, aber da find ich nix brauchbares... HILFÄÄÄÄÄÄ :wall: |
Re: Drag&Drop mit VirtualTreeView
Hi,
hm... ich glaube die Glaskugel von Luckie habe ich ihm wieder gegeben. :wall: Also mit ein wenig Source musst du schon dienen. Und vielleicht eine nähere Erklärung dazu wäre auch nicht schlecht (nur damit hier nicht gleich ein unkommentierter Source-Block ankommt, den keiner versteht). Chris |
Re: Drag&Drop mit VirtualTreeView
Zitat:
nee also wegen dem VTV: ich möchte einen Eintrag, also eine Node draggen und an einer anderen Stelle im Baum wieder einfügen können... im MouseDown-Event wird drag auf true gesetzt, dann:
Code:
procedure TForm1.VtreeMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); var Node: PVirtualNode; Data: PTreeData; begin if drag=true then begin SelectNode := vtree.GetNodeAt(x,y); if SelectNode<>nil then begin //Data := vtree.GetNodeData(SelectNode); vtree.BeginDrag(drag); //(Data^.FObject.FGrBezeichnung); end; end; end;
Code:
procedure TForm1.VtreeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin drag := false; vtree.EndDrag(drag); end;
Code:
procedure TForm1.VtreeDragOver(Sender: TBaseVirtualTree; Source: TObject;
Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode; var Effect: Integer; var Accept: Boolean); begin Accept := true; end; procedure TForm1.VtreeEndDrag(Sender, Target: TObject; X, Y: Integer); begin vtree.InsertNode(SelectNode,amInsertAfter); end; |
Re: Drag&Drop mit VirtualTreeView
Hi,
ich habe kein VirtualStringTree her, allerdings meine ich mich daran zuerinnern dass das auch anders geht. Ich habe aber gerade was mit der Suche gefunden: ![]() Chris |
Re: Drag&Drop mit VirtualTreeView
so ein mist, das zip-File is kaputt :cry:
komisch, ich hab die tage vielleicht 3h gesucht, aber diesen post hab ich noch nich gesehn :gruebel: das wäre sicher die lösung gewesen die datei...verdammt... |
Re: Drag&Drop mit VirtualTreeView
Hi,
weil die Komponente eigentlich auch VirtualStringTree heißt. ;) Chris PS: Ich habe kein Problem die runterzuladen. Aber das ist - wie ich gerade sehe - die Drag'n'Drop-Demo, die eigentlich auch dabei ist. Hast du dir den Source mal angesehen? Da wird es ja gezeigt, in welchem Ereignis was stehen muss. Damit kommst du eigentlich schon recht weit. ;) |
Re: Drag&Drop mit VirtualTreeView
ja ich kenn die standard demos, nur ist dir daran mal aufgefallen das die sich zwar draggen lassen, aber du kannst einen eintrag nirgends einfügen. bei der advanced demo kann ich meintwegen Node4 ziehen und zwischen Node1 und Node2 einfügen, passieren tut dabei aber nichts. aber gerade das ist ja das was mich interessiert. verstehst? und dazu find ich nix brauchbares...
[edit]ich hab schon nac VST gesucht, aber viele nennen den eben auch VTV :gruebel: [/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 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