AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[FMX] TTreeView onDradDrop Handler

Ein Thema von LoZe · begonnen am 12. Sep 2018 · letzter Beitrag vom 18. Sep 2018
Antwort Antwort
LoZe

Registriert seit: 27. Dez 2016
Ort: Ulm
40 Beiträge
 
Delphi 12 Athens
 
#1

[FMX] TTreeView onDradDrop Handler

  Alt 12. Sep 2018, 16:15
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:
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;
mein Problem Dabei ist dass, das Drag Object weiterhin Sichtbar ist wie breche ich den Drag Vorgang ab?
Miniaturansicht angehängter Grafiken
unbenannt.png  
Chris

Geändert von LoZe (13. Sep 2018 um 08:51 Uhr)
  Mit Zitat antworten Zitat
LoZe

Registriert seit: 27. Dez 2016
Ort: Ulm
40 Beiträge
 
Delphi 12 Athens
 
#2

AW: [FMX] TTreeView onDradDrop Handler

  Alt 14. Sep 2018, 08:30
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
Miniaturansicht angehängter Grafiken
dropitem.png  
Chris
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: [FMX] TTreeView onDradDrop Handler

  Alt 14. Sep 2018, 19:41
Du könntest es z.B. so lösen:
Delphi-Quellcode:
procedure TForm18.TreeView1DragChange(SourceItem, DestItem: TTreeViewItem;
  var Allow: Boolean);
begin
  Allow := copy (DestItem.text, 1,1) <> '@';
end;
Dann wird das Drop nur akzeptiert, wenn die übergeordneten Knoten der User als Ziel ausgewählt werden.
  Mit Zitat antworten Zitat
LoZe

Registriert seit: 27. Dez 2016
Ort: Ulm
40 Beiträge
 
Delphi 12 Athens
 
#4

AW: [FMX] TTreeView onDradDrop Handler

  Alt 16. Sep 2018, 12:38
Vielen Dank für die Antwort ich werde es Morgen mal testen.
Chris
  Mit Zitat antworten Zitat
LoZe

Registriert seit: 27. Dez 2016
Ort: Ulm
40 Beiträge
 
Delphi 12 Athens
 
#5

AW: [FMX] TTreeView onDradDrop Handler

  Alt 17. Sep 2018, 13:14
Du könntest es z.B. so lösen:
Delphi-Quellcode:
procedure TForm18.TreeView1DragChange(SourceItem, DestItem: TTreeViewItem;
  var Allow: Boolean);
begin
  Allow := copy (DestItem.text, 1,1) <> '@';
end;
Dann wird das Drop nur akzeptiert, wenn die übergeordneten Knoten der User als Ziel ausgewählt werden.
Hallo Harry,
Deine Lösung war genau das, wonach ich suchte.
Funktioniert einwandfrei.


Vielen Dank.
Chris
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: [FMX] TTreeView onDradDrop Handler

  Alt 18. Sep 2018, 17:17
OK, freut mich.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz