Einzelnen Beitrag anzeigen

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, 12: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