现在拖动一个东西在经过TreeView的某个节点时,如何改变这个节点的图标呢?

解决方案 »

  1.   

    onmousemove
    treeview.selected.selectedindex:=X;
      

  2.   

    有,用COM对象! 
    关键字:Windows,OLE2,ShellAPI
    TIDropTarget
    RegisterDragDrop
      

  3.   

    在重载方法
    function DragOver(grfKeyState: Longint; pt: TPoint;
         var dwEffect: Longint): HResult; override;
    里加你的换图标代码。
      

  4.   

    以上是从另一个程序里向一个程序拖DD的。
    下面是同一个delphi程序里的:
    procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      //换图标
      //type TDragState = (dsDragEnter, dsDragLeave, dsDragMove);
      case ( State ) of begin
        dsDragEnter: begin //DD被拖入
          //换过去
        end;
        dsDragLeave: begin //DD被拖着离开
          //换回来
        end;
      end;
    end;
    你还需要在OnEndDrag加入代码,Tree的图标就比较自然了。