全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1515
推到 Plurk!
推到 Facebook!

TreeView複製及貼上之問題~

缺席
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-12-22 23:31:31 IP:122.118.xxx.xxx 訂閱
各位先進好:
小弟在動態TreeView中有很多node,經常需要把node
搬到另一個node,有點像拖曳那樣,但是我是用popupMenu1
的方式新增"複製"及"貼上"請問我程式碼應該如何下手呢??
先謝謝各位大大嘍
------
努力往往是甘苦的!!一起勉勵
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-12-23 11:47:07 IP:183.55.xxx.xxx 未訂閱
多利用站内资料,可参考以下有你想要的资料

http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=44484
或直接站内搜:treeview
===================引 用 nokib2002 文 章===================
各位先進好:
小弟在動態TreeView中有很多node,經常需要把node
搬到另一個node,有點像拖曳那樣,但是我是用popupMenu1
的方式新增"複製"及"貼上"請問我程式碼應該如何下手呢??
先謝謝各位大大嘍
nokib2002
一般會員


發表:22
回覆:48
積分:14
註冊:2009-08-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-12-23 12:45:56 IP:59.120.xxx.xxx 訂閱

  1. deity你好:
    我有站內搜尋,有找到可以拖曳的文章,但我是想要新增複製及貼上功能
    我有用popupMenu1的方式,可是不知如何下手.還有我造下列程式碼編譯
    我的TreeView無法拖曳,明明compilier可以過,請教各位大大了..

    [code cpp]
    void __fastcall TEMForm::RzTreeView1DragDrop(TObject *Sender,TObject *Source, int X, int Y)
    [/code]


    ===================引 用 deity 文 章===================
    多利用站内资料,可参考以下有你想要的资料

    http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=44484
    或直接站内搜:treeview
    ===================引 用 nokib2002 文 章===================
    各位先進好:
    小弟在動態TreeView中有很多node,經常需要把node
    搬到另一個node,有點像拖曳那樣,但是我是用popupMenu1
    的方式新增"複製"及"貼上"請問我程式碼應該如何下手呢??
    先謝謝各位大大嘍
  2. {
  3. if(Source==NULL)
  4. return;
  5. TTreeNode *Sourcenode = RzTreeView1->Selected;
  6. TTreeNode *Targetnode = RzTreeView1->DropTarget;
  7. TTreeNode *node;
  8. if(Targetnode == NULL)
  9. return;
  10. //搬移
  11. TNodeAttachMode AttachMode;
  12. if(Source == RzTreeView1)
  13. {
  14. if(Targetnode->Level > 0)
  15. {
  16. switch(Sourcenode->Level)
  17. {
  18. case 0:
  19. break;
  20. case 1: //群組搬移
  21. if(Sourcenode->AbsoluteIndex < Targetnode->AbsoluteIndex) //下移
  22. {
  23. if(Targetnode != Targetnode->GetNext() && Targetnode->GetNext()!=NULL) //是否有下一個群組
  24. {
  25. Targetnode = Targetnode->GetNext();
  26. bool flag = false; //while迴圈結束旗標
  27. if(Targetnode->Level==2)
  28. {
  29. flag = true;
  30. }
  31. while(flag) //找下一個群組
  32. {
  33. if(Targetnode != Targetnode->GetNext() && Targetnode->GetNext()!=NULL) //是否有下一個群組
  34. {
  35. Targetnode = Targetnode->GetNext();
  36. if(Targetnode->Level==1)
  37. {
  38. flag = false;
  39. }
  40. }
  41. else
  42. {
  43. flag = false;
  44. }
  45. }
  46. if(Targetnode->GetNext()!=NULL) //是否有下一個群組
  47. {
  48. AttachMode = naInsert;
  49. }
  50. else
  51. {
  52. AttachMode = naAdd;
  53. }
  54. }
  55. else
  56. {
  57. AttachMode = naAdd;
  58. }
  59. }
  60. else //上移
  61. {
  62. if(Targetnode != Targetnode->GetPrev()) //是否有上一個群組
  63. {
  64. AttachMode = naInsert;
  65. }
  66. else
  67. {
  68. AttachMode = naAddFirst;
  69. }
  70. }
  71. if(Targetnode->Level==2)
  72. {
  73. Targetnode = Targetnode->Parent;
  74. }
  75. Sourcenode->MoveTo(Targetnode, AttachMode); //搬移
  76. Sourcenode->Expand(true); //展開
  77. break;
  78. case 2: //裝置搬移
  79. if(Targetnode->Level== 1) //搬移至群組移動到最後
  80. {
  81. node = RzTreeView1->Items->AddChild(Targetnode,Sourcenode->Text);
  82. Targetnode->Expand(true);
  83. RzTreeView1->Items->Delete(Sourcenode);
  84. }
  85. if(Targetnode->Level== 2)
  86. {
  87. if(Sourcenode->AbsoluteIndex < Targetnode->AbsoluteIndex) //下移
  88. {
  89. if(Targetnode->GetNext()!=NULL && Targetnode->GetNext()->Level==2)
  90. {
  91. Targetnode = Targetnode->GetNext();
  92. AttachMode = naInsert;
  93. }
  94. else
  95. {
  96. AttachMode = naAdd;
  97. }
  98. }
  99. else // 上移
  100. {
  101. AttachMode = naInsert;
  102. }
  103. Sourcenode->MoveTo(Targetnode, AttachMode); //搬移
  104. }
  105. break;
  106. default:
  107. break;
  108. }
  109. }
  110. }
  111. }

請在此區域輸入程式碼
------
努力往往是甘苦的!!一起勉勵
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-12-23 17:52:27 IP:113.75.xxx.xxx 未訂閱

編輯記錄
deity 重新編輯於 2010-12-23 03:03:42, 註解 無‧
系統時間:2017-10-23 17:49:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!