線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1595
推到 Plurk!
推到 Facebook!

如何在Treeview中用滑鼠拖曳調整項目位置

答題得分者是:領航天使
shihfu
一般會員


發表:2
回覆:0
積分:0
註冊:2002-05-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-30 10:23:44 IP:61.30.xxx.xxx 未訂閱
在Treeview中要如何做到 讓User執行時可以用滑鼠拖曳調整項目位置
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-30 20:47:05 IP:61.219.xxx.xxx 未訂閱
引言: 在Treeview中要如何做到 讓User執行時可以用滑鼠拖曳調整項目位置
我寫了一個範例程式給您 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TForm1 = class(TForm) TreeView1: TTreeView; procedure TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); procedure TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} // 拖動放開時處理用 procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer); var tSrcNode ,tDesNode: TTreeNode ; begin tDesNode := TTreeview(Sender).GetNodeAt(X,Y); // 取得目地的TreeNode if tDesNode<>nil then // 目地物件有找到才處理 if Source is TTreeview then // 如果拖動的來源也是TreeView才處理 begin tSrcNode := TTreeview(Source).Selected ; // 將來原物件選取 tSrcNode.Moveto(tDesNode,naAddChild); // 搬動到目地物件中 end end; // 搬動過程中詢問是否接受目的的移動(滑鼠指標形狀會改變) procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); var TreeNode:TTreeNode; begin TreeNode:=TreeView1.GetNodeAt(x,y); // 從滑鼠位置取得TreeNode的物件 accept:=TreeNode<>nil; // 有找到傳回Accept:=true end; end. ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
鈴鐺
初階會員


發表:33
回覆:81
積分:35
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-02 14:14:32 IP:61.220.xxx.xxx 未訂閱
補充: 要將 property 的 drag mode 設為 dmAutomatic 另外想請問一般軟體可以讓 srcNode 移到 destNode 的 child 或是前一個,後一個位置, 這該如何實作呢? 站長提供的是加在 child node 上.
系統時間:2024-04-24 15:57:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!