Ver Mensaje Individual
  #3  
Antiguo 16-11-2006
aram2r aram2r is offline
Miembro
 
Registrado: ene 2004
Posts: 81
Reputación: 21
aram2r Va por buen camino
este es el codigo completo

Código Delphi [-]
procedure TFormPrincipal.EquiposStartDrag(Sender: TObject;
  var DragObject: TDragObject);
begin
  Label44.Caption:=equipos.Selected.Parent.Text;
end;

procedure TFormPrincipal.EquiposDragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
var
  TargetNode, SourceNode: TTreeNode;
begin
  TargetNode := equipos.GetNodeAt (X, Y);
  if (Source = Sender) and (TargetNode <> nil) then
  begin
    Accept := True;
    SourceNode := equipos.Selected;
    while (TargetNode.Parent <> nil) and
        (TargetNode <> SourceNode) do
      TargetNode := TargetNode.Parent;
    if TargetNode = SourceNode then
      Accept := False;
  end
  else
    Accept := False;
  if y > (equipos.Top+equipos.Width) then
  begin
    equipos.ScrollBy(0,-2);
  end;
end;

procedure TFormPrincipal.EquiposDragDrop(Sender, Source: TObject; X,
  Y: Integer);
var
  TargetNode, SourceNode: TTreeNode;
begin
  TargetNode := equipos.GetNodeAt (X, Y);
  if TargetNode <> nil then
  begin
    SourceNode := equipos.Selected;
    SourceNode.MoveTo (TargetNode, naAddChildFirst);
    TargetNode.Expand (False);
    equipos.Selected := TargetNode;
  end;
end;

procedure TFormPrincipal.EquiposMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  TargetNode, SourceNode: TTreeNode;
begin
  TargetNode := equipos.GetNodeAt (X, Y);
  if (TargetNode.ImageIndex<>0 ) and (TargetNode.ImageIndex<>7) then
    equipos.BeginDrag (False);
end;
He comprobado a ver si lo hace automaticamente pero no he obtenido resultados el dragdrop es de un mismo nodo del treeview que lo quiero cambiar de posicion.

Adjunto una imagen, perdon por la calidad pero esta un poco limitado el tamaño para subir archivos
Archivos Adjuntos
Tipo de Archivo: zip treeView.zip (19,1 KB, 15 visitas)
Responder Con Cita