Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Via Drag and Drop aus List View Item einen Knoten ins TreeV
avenger - Di 19.05.09 21:33
Titel: Via Drag and Drop aus List View Item einen Knoten ins TreeV
Ich hab noch nie etwas mit Drag Und Drop gemacht, also nicht gleich hauen :-)
Hier mal ein paar codeschnipsel die ich mir zusammengesucht habe in der Hoffnung das es vielleicht funzt, tut es jedoch nicht. Finde auch nicht wirklich ein gutes Tutorial zu diesem Thema, aber vielleicht kann mir das ja hier jemand mal genauer erklären.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.ItemViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin Accept := Source = ItemView; end;
procedure TForm1.TreeView2DragDrop(Sender, Source: TObject; X, Y: Integer); var Temp: TListView;
begin Temp := (Source as TListView); TreeView2.Items.Add(NIL, 'Name des ausgewäjlten ListView Items');
end; |
Moderiert von
Narses: Quote- durch Delphi-Tags ersetzt
jaenicke - Di 19.05.09 21:42
Hast du vielleicht vergessen DragMode auf dmAutomatic zu stellen? ;-)
avenger - Di 19.05.09 22:11
Nö, hatte ich schon im Objectinspektor gemacht !
jaenicke - Di 19.05.09 22:25
Dann funktioniert das aber bei mir. DragMode bei beiden gesetzt, dann OnDragOver und OnDragDrop bei der TreeView wie bei dir zu sehen gesetzt, fertig. Um genau zu sein habe ich es so gemacht, damit auch wirklich die Überschrift des ListItems in der TreeView dann steht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TfrmTest.trvDestinationTreeViewDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Source = lvwSourceListView; end;
procedure TfrmTest.trvDestinationTreeViewDragDrop(Sender, Source: TObject; X, Y: Integer); begin trvDestinationTreeView.Items.Add(nil, (Source as TListView).Selected.Caption); end; |
avenger - Di 19.05.09 22:38
Ich habs jetzt.
Hatte die DragOverProcedure als Event des ListViews und nicht als Event des TreeViews...
Danke nochmal !!
jaenicke - Di 19.05.09 22:40
In DragOver sagst du Bescheid, ob du den aktuellen Dragvorgang auf der Komponente akzeptieren würdest oder nicht. Und nur wenn du da sagst "Ja, das wäre was für mich", dann lässt das System ein Fallenlassen an der Stelle zu. ;-)
avenger - Di 19.05.09 22:44
Glaub ich habs verstanden :-)
Die nächste Frage kommt bestimmt !!!!
avenger - Di 19.05.09 22:56
Was ist eigentlcih der Unterschied zwischen dmAutomatic und dmManual ?!
jaenicke - Di 19.05.09 23:06
Wenn du manuell einstellst (eingestellt lässt), musst du den Dragvorgang manuell starten. Es passiert sonst schlicht nichts, wenn du versuchst einen Eintrag zu ziehen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!