AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Prism Drag & Drop mit Panel und TreeView: Merkwürdiges Verhalten
Thema durchsuchen
Ansicht
Themen-Optionen

Drag & Drop mit Panel und TreeView: Merkwürdiges Verhalten

Ein Thema von Alexander · begonnen am 25. Mär 2007 · letzter Beitrag vom 26. Mär 2007
Antwort Antwort
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

Drag & Drop mit Panel und TreeView: Merkwürdiges Verhalt

  Alt 25. Mär 2007, 11:51
Hallo
Ich spiele gerade ein wenig mit Drag und Drop mit einem TreeView und einem Panel (genauer gesagt, Klasse abgeleitet vom Panel) herum.
Auf dem Panel sollen dann die Nodes als Button erscheinen. Letzteres funktioniert auch schon, daran liegt es also nicht.

Bei beiden Komponenten (Panel und Treeview) ist selbstverständlich AllowDrop auf true.
Bei der Treeview habe ich folgenden Code:
Delphi-Quellcode:
procedure TCreateControllingData.TView_AllFields_ItemDrag(sender: System.Object; e: System.Windows.Forms.ItemDragEventArgs);
begin
  TView_AllFields.DoDragDrop(DataObject.Create('System.Windows.Forms.TreeNode', TView_AllFields.SelectedNode), DragDropEffects.Move)
end;
Bei meinem Panel diesen:
Delphi-Quellcode:
procedure TDCubeButtonPanel.Self_DragEnter(sender: System.Object; e: System.Windows.Forms.DragEventArgs);
begin
  if (e.Data.GetDataPresent('System.Windows.Forms.TreeNode')) then
    e.Effect := DragDropEffects.Move
  else
    e.Effect := DragDropEffects.None;
end;

procedure TDCubeButtonPanel.Self_DragDrop(sender: System.Object; e: System.Windows.Forms.DragEventArgs);
var
  node : TreeNode;
begin
  if (e.Data.GetDataPresent('System.Windows.Forms.TreeNode')) then
  begin
    node := e.Data.GetData('System.Windows.Forms.TreeNode') as TreeNode;
    fButtons.Add(node.index.toString);
    createButtons;
  end;
end;
Theoretisch müsste es funktionieren. Der Fehler scheint irgendwie in Self_DragDrop zu sein.
Die Methode wird ausgeführt, die If-Bedingung wird akzeptiert, die ArrayList fButtons wird auch gefüllt, nur createButtons dann nicht mehr .
Er hört da einfach auf .

Habt ihr eine Idee, woran das liegen könnte?
Alexander
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#2

Re: Drag & Drop mit Panel und TreeView: Merkwürdiges Ver

  Alt 26. Mär 2007, 12:27
Gerade noch einmal versucht und so funktioniert's:
Delphi-Quellcode:
procedure TDCubeButtonPanel.Self_DragDrop(sender: System.Object; e: System.Windows.Forms.DragEventArgs);
var
  node : TreeNode;
begin
  if (e.Data.GetDataPresent(typeof(TreeNode))) then
  begin
    node := e.Data.GetData(typeof(TreeNode)) as TreeNode;
    fButtons.Insert(getBtnIndexAtPos(Self.PointToClient(Point.Create(e.X,e.Y))), node.index.toString);
    createButtons;
  end
end;
Alexander
  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 05:00 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