Einzelnen Beitrag anzeigen

Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#1

DragDrop mit TTreeViewItem als Ziel

  Alt 10. Dez 2022, 11:30
Hallo,
ich plage mich mit dem Versuch aus einem TListView Informationen zu einem TTreeViewItem in einem TTreeView zu ziehen und leider klappt es nicht.

Das Ziehen (Drag) scheint soweit zu funktionieren:

Delphi-Quellcode:
procedure TFormViewZuordnen.ListViewZuordnenMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single);
var
  Svc: IFMXDragDropService;
  DragData: TDragObject;
begin
  if (SsLeft in Shift) and (Assigned(TListView(sender).Selected)) and
      TPlatformServices.Current.SupportsPlatformService(IFMXDragDropService, Svc)
  then
    begin
      log('Ich werde gezogen');
      DragData.Source:= TListView(sender).Selected;
      DragData.Data:= TKonto(TListView(sender).Selected.TagObject);
      Svc.BeginDragDrop(Self, DragData, Image1.Bitmap);
    end;
end;
Auch DragOver funktioniert:

Delphi-Quellcode:
procedure TFormViewZuordnen.TreeViewEBilanzDragOver(Sender: TObject; const Data: TDragObject; const Point: TPointF;
  var Operation: TDragOperation);
begin
  TTreeView(Sender).Selected:= TTreeView(Sender).ItemByPoint(Point.X, Point.y); //Funktioniert, zeigt wunderbare blaue Balken
  Operation:= TDragOperation.Copy
end;
Aber bei DragDrop keine Reaktion:

Delphi-Quellcode:
procedure TFormViewZuordnen.TreeViewEBilanzDragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF);
var
  Item: TTreeViewItem;
begin
  log('DragDrop');
  Item:= TTreeView(Sender).ItemByPoint(Point.X, Point.y);
  log(Item.Text);
end;
Es wird nichts im Log angezeigt, im Gegensatz zum Start. Offensichtlich wird die Funktion nicht mal ausgeführt.

Was mache ich falsch? Kann mir jemand helfen?

Danke schon mal.

Gruß Peter
Peter Niemeier
  Mit Zitat antworten Zitat