![]() |
[FMX] TTreeView onDradDrop Handler
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, ich habe da ein kleines Problem.
ich will die User im TreeView per Drag and Drop in die verschiedenen Schichten einteilen. aber ich will nicht des ein User einem User Untergeordnet werden kann. ich habe das jetzt im Moment so Gelöst:
Delphi-Quellcode:
mein Problem Dabei ist dass, das Drag Object weiterhin Sichtbar ist wie breche ich den Drag Vorgang ab?
procedure TForm2.TreeView1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Single); var node:TTreeViewItem; begin if (TreeView1.Selected <> nil) and (SsLeft in Shift) then begin node:= TreeView1.Selected; if node.text[1] = '@' then BeginInternalDrag(TreeView1.Selected, Image2.Bitmap); end; end; procedure TForm2.TreeView1DragDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); var TargetNode : TTreeViewItem; SourceNode : TTreeViewItem; begin TargetNode := TreeView1.ItemByPoint(Point.X,Point.Y); SourceNode := Data.Source as TTreeViewItem; if op = TDragOperation.None then begin Abort; // <- Hier der Abbruch *** end; ShowMessage(SourceNode.Text + ' -> ' + TargetNode.Text); end; |
AW: [FMX] TTreeView onDradDrop Handler
Liste der Anhänge anzeigen (Anzahl: 1)
Hier Nochmal ein Bild in dem man das Problem besser erkennt.
Das Drop Item wird komplett Überlagern angezeigt auch wenn ich eine andere Anwendung im Vordergrund habe. wie Zerstöre ich dies bei einem fehlerhaften Drop |
AW: [FMX] TTreeView onDradDrop Handler
Du könntest es z.B. so lösen:
Delphi-Quellcode:
Dann wird das Drop nur akzeptiert, wenn die übergeordneten Knoten der User als Ziel ausgewählt werden.
procedure TForm18.TreeView1DragChange(SourceItem, DestItem: TTreeViewItem;
var Allow: Boolean); begin Allow := copy (DestItem.text, 1,1) <> '@'; end; |
AW: [FMX] TTreeView onDradDrop Handler
Vielen Dank für die Antwort ich werde es Morgen mal testen.
|
AW: [FMX] TTreeView onDradDrop Handler
Zitat:
Deine Lösung war genau das, wonach ich suchte. Funktioniert einwandfrei. :thumb: Vielen Dank. |
AW: [FMX] TTreeView onDradDrop Handler
OK, freut mich.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz