Einzelnen Beitrag anzeigen

Peter-Pascal

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

AW: DragDrop mit TTreeViewItem als Ziel

  Alt 13. Dez 2022, 16:49
Danke für eure Antworten.
Ich habe es jetzt umgebaut:

Delphi-Quellcode:
procedure TFormViewZuordnen.ListViewZuordnenMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single);
var
  Svc: IFMXDragDropService;
  DragData: TDragObject;
  Item: TListViewItem;
  List: TListView;
begin
  if (SsLeft in Shift) then
  begin
    List:= Sender as TListView;
    Item:= TListViewItem(List.Selected);
    if Assigned(Item) and TPlatformServices.Current.SupportsPlatformService(IFMXDragDropService, Svc) then
    begin
      log('Ich werde gezogen ' + sender.ClassName + ' ' + Item.Text);
      DragData.Source:= Item;
      DragData.Data:= Item.TagObject;
      Svc.BeginDragDrop(Self, DragData, Image2.Bitmap);
    end;
  end;
end;

procedure TFormViewZuordnen.TreeViewEBilanzDragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF);
var
  Item: TTreeViewItem;
begin
  log('DragDrop');
  item:= (Sender as TTreeViewItem).ItemByPoint(Point.X, Point.y);
// Item:= TTreeView(Sender).ItemByPoint(Point.X, Point.y);
  log(Item.Text);
end;

procedure TFormViewZuordnen.TreeViewEBilanzDragOver(Sender: TObject; const Data: TDragObject; const Point: TPointF;
  var Operation: TDragOperation);
var
  Item: TTreeViewItem;
begin
// TTreeView(Sender).Selected:= TTreeView(Sender).ItemByPoint(Point.X, Point.y); //Funktioniert, zeigt wunderbare blaue Balken
  Operation:= TDragOperation.Copy
end;
Die Funktion TreeViewEBilanzDragDrop wird offensichtlich nicht aufgerufen.
Das Mausziehen wird jetzt korrekt ausgeführt und ins Log eingetragen, aber aus der Funktion DragDrop kommt nichts ins Log.

Ich habe auch verschiedene Schalter ausprobiert beim Baum. AllowDrag:= True oder False

Gruß Peter
Miniaturansicht angehängter Grafiken
dragdrop.png  
Peter Niemeier
  Mit Zitat antworten Zitat