DELPHI6中,Samples下,ShellTreeView组件

解决方案 »

  1.   

    1.多的是,去网上找找vcl.vclxx.org
    2.很easy,在ondragover,ondragdrop事件下写,懒得写了^&^
      

  2.   

    2:
    procedure TMainForm.TreeViewDragOver(Sender, Source: TObject; X,
      Y: Integer; State: TDragState; var Accept: Boolean);
    var
      Node: TTreeNode;
    begin
      Node := tvFolder.GetNodeAt(x, y);
      if Node <> nil then
      begin
        while (Node.Parent <> nil) and (Node <> TreeView.Selected) do
          Node := Node.Parent;
        if Node <> nil then
          if Node = TreeView.Selected then
             Accept := false;
      end;
    end;procedure TMainForm.tvFolderDragDrop(Sender, Source: TObject; X,
      Y: Integer);
    var
      Node: TTreeNode;
      s: string;
      i, DragMode: integer;
    begin
      Node := tvFolder.GetNodeAt(x, y);
      if Node = nil then
        TreeVuew.Selected.MoveTo(nil, naAdd)
      else if InputQuery('', '请输入一个整数',s) then
        try
          DragMode := StrToInt(s)
          case DragMode of  
              0:  TreeView.Selected.MoveTo(Node, naAddChildFirst);
              1:  TreeView.Selected.MoveTo(Node, naAddChild);
              2:  TreeView.Selected.MoveTo(Node, naInsert);
          end;
        except
          ShowMessage('只能输入数字');
        end;
      end;
    end;
      

  3.   

    如何不讓用編輯 text ,設為只,那個屬性!
      

  4.   

    看看这个,也许对你有帮助:http://www.csdn.net/expert/topic/369/369469.shtm
      

  5.   

    procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    var
      Node: TTreeNode;
      s: string;
      DragMode: integer;
    begin
      Node := TreeView1.GetNodeAt(x, y);
      if Source is TListView then  
        TreeView1.Items.AddChild(Node, ListView1.Selected.Caption)
      else if Node = nil then
        TreeView1.Selected.MoveTo(nil, naAdd)
      else if InputQuery('', '请输入一个整数',s) then
        try
          DragMode := StrToInt(s);
          case DragMode of
              0:  TreeView1.Selected.MoveTo(Node, naAddChildFirst);
              1:  TreeView1.Selected.MoveTo(Node, naAddChild);
              2:  TreeView1.Selected.MoveTo(Node, naInsert);
          end;
        except
          ShowMessage('只能输入数字');
        end;
    end;procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      Accept := true;
    end;
      

  6.   

    to:taxi(游少爷) 
      我現在想每一個節點有兩個值, 一個用顯示text,另一個進行其他操作,我用不好
     addchildobject 可以說一個嗎!
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s: string;
    begin
      if InputQuery('', '', s) then
        with TreeView1 do
          Items.AddChildObject(Selected, s, pointer(Items.Count));
    end;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    begin
      ShowMessage(IntToStr(integer(Node.Data)));
    end;
      

  8.   

    Items.AddChildObject(Selected, s, pointer(str)); 我的str 為字符串類型,結果顯示為亂碼,為什麼呢解決這個問題我就給分了!
      

  9.   

    Items.AddChildObject(Selected, s, pchar(str)); 
      

  10.   

    不会吧,取出来的时候转为string
    string(TreeView1.Selected.Data);
      

  11.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      s: string;
    begin
      if InputQuery('', '', s) then
        TreeView1.Items.AddChildObject(TreeView1.Selected, s, Pchar(s)); //如果是字符串,就用pchar,如果是整型,用point
    end;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    begin
      ShowMessage(string(Node.Data));
    end;//我试了都不会
      

  12.   

    你还不满足的话,和Microsoft 要