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