Autor Beitrag
avenger
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 90



BeitragVerfasst: Di 19.05.09 21:33 
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.
ausblenden 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 user profile iconNarses: Quote- durch Delphi-Tags ersetzt


Zuletzt bearbeitet von avenger am Di 19.05.09 22:11, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 19.05.09 21:42 
Hast du vielleicht vergessen DragMode auf dmAutomatic zu stellen? ;-)
avenger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 90



BeitragVerfasst: Di 19.05.09 22:11 
Nö, hatte ich schon im Objectinspektor gemacht !
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 90



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 90



BeitragVerfasst: Di 19.05.09 22:44 
Glaub ich habs verstanden :-)

Die nächste Frage kommt bestimmt !!!!
avenger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 90



BeitragVerfasst: Di 19.05.09 22:56 
Was ist eigentlcih der Unterschied zwischen dmAutomatic und dmManual ?!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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.