Hola a todos,
Estoy intentando hacer funcionar un drag and drop para un treeview programado con TTreeView que funcione para un control TreeView de .NEt.
Lo he intentado de varias formas...la última a través del código de Marco Cantu del libro Mastering Delphi 2005 que va como sigue:
Código:
procedure EquipCom.TreeView1_DragDrop(sender,source: System.Object; e: System.Windows.Forms.DragEventArgs;
point:System.Drawing.point);
var
TargetNode,SourceNode:TTreeNode;
begin
TargetNode:=treeView1.GetNodeAt(point);
if TargetNode <> nil then
begin
SourceNode:=TreeView1.SelectedNode;
SourceNode.MoveTo(targetNode,naAddChildFirst);
TargetNode.Expand(False);
treeView1.SelectedNode:=TargetNode;
end;
end;
procedure EquipCom.TreeView1_DragOver(sender,source: System.Object;point:System.Drawing.point;
state:TDragState;var Accept:boolean; e: System.Windows.Forms.DragEventArgs);
var
TargetNode,SourceNode:TTreeNode;
begin
TargetNode:=TreeView1.GetNodeAt(Point);
if ((source=Sender) AND(targetNode <> nil)) then
begin
Accept:=True;
SourceNode:=TreeView1.SelectedNode;
while (targetNode.Parent<> nil) and (targetNode<> SourceNode) do
begin
targetNode:=TargetNode.Parent;
end;
if TargetNode = SourceNode then
Accept:=False;
end
else Accept:=False;
end;
Pero claro, hay cosas que de calle no están bien para .NET, por ejemplo en
Código:
SourceNode:=TreeView1.SelectedNode;
nos darà un problema de tipos ya que: en
Código:
var
TargetNode,SourceNode:TTreeNode;
le estamos definiendo un TTreeNode que no es lo mismo que un TreeNode en .NET
Aparte el compilador se queja cuando le assigno al drag&drop cabeceras diferentes de:
Código:
procedure EquipCom.TreeView1_DragOver(sender: System.Object;
e: System.Windows.Forms.DragEventArgs);
En mi caso la cabecera que intento assignarle al DragOver es:
Código:
procedure EquipCom.TreeView1_DragOver(sender,source: System.Object;point:System.Drawing.point;
state:TDragState;var Accept:boolean; e: System.Windows.Forms.DragEventArgs);
.
En fin, si alguna lumbrera me puede orientar..yo lo único que desearia són acciones de drag&drop en un treeview. Pero estoy encallado.
Ala,saludos y gracias por adelantado.