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

請問有關 treeview 排序問題

尚未結案
760729
一般會員


發表:32
回覆:51
積分:16
註冊:2004-09-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-13 22:26:06 IP:59.105.xxx.xxx 未訂閱
請問各位高手, 是否有 treeview 內 node 做 sort 的範例程式. 因為書中所提的很少. 發表人 - taishyang 於 2005/01/13 23:58:05
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-14 20:42:39 IP:61.64.xxx.xxx 未訂閱
引言: 請問各位高手, 是否有 treeview 內 node 做 sort 的範例程式. 因為書中所提的很少. 發表人 - taishyang 於 2005/01/13 23:58:05
方法一: 利用TTreeview內建的SortType屬性, 共有四種屬性 stNone: No sorting is done. stData: The items are sorted when the Data object or SortType is changed. stText: The items are sorted when the Caption or SortType is changed. stBoth: The items are sorted when either the Data object, the Caption or SortType is changed 其中的DataObject指的是你用TTreeView.Items.AddObject 加入的Object 方法二: 實作TTreeView的OnCompare事件 Occurs when two nodes must be compared during a sort of the nodes in the tree view. 原型宣告: typedef void __fastcall (__closure *TTVCompareEvent)(System::TObject* Sender, TTreeNode* Node1, TTreeNode* Node2, int Data, int &Compare); 參數解釋: Write an OnCompare event handler to customize the sort order of the nodes in the tree view. Set the Compare parameter to a value less than 0 if Node1 is less than Node2. Set Compare to 0 if Node1 is equivalent to Node2, and set Compare to a value greater than 0 if Node1 is greater than Node2. If an OnCompare event handler is not provided, tree view nodes are sorted alphabetically, based on their labels.
760729
一般會員


發表:32
回覆:51
積分:16
註冊:2004-09-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-17 09:45:19 IP:61.61.xxx.xxx 未訂閱
Zard 你好: 謝謝你的解答, 不過這些我在書中已經看過了, 因為我的 treeview 在我的程式執行時, 會一直的增加 node, 所以新生的 node 要和已有的所有 node 做比較, 這是我所不會, 需要請教各位前輩的.
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-17 12:18:36 IP:210.243.xxx.xxx 未訂閱
引言: Zard 你好: 謝謝你的解答, 不過這些我在書中已經看過了, 因為我的 treeview 在我的程式執行時, 會一直的增加 node, 所以新生的 node 要和已有的所有 node 做比較, 這是我所不會, 需要請教各位前輩的.
在新增Node後呼叫TreeView1->AlphaSort(); TreeView1->AlphaSort(); 會間接呼叫TTreeView的OnCompare事件
760729
一般會員


發表:32
回覆:51
積分:16
註冊:2004-09-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-17 13:02:53 IP:61.61.xxx.xxx 未訂閱
Zard 你好: 那在 OnCompare事件中, 是否要寫一些比較式.
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-17 18:07:50 IP:210.243.xxx.xxx 未訂閱
引言: Zard 你好: 那在 OnCompare事件中, 是否要寫一些比較式.
要. 當Node間需要判斷時OnCompare就會被呼叫到, 所以你必須在OnCompare裡加入比較的方法, 仔細看看下面的資訊在實作. Occurs when two nodes must be compared during a sort of the nodes in the tree view. 原型宣告: typedef void __fastcall (__closure *TTVCompareEvent)(System::TObject* Sender, TTreeNode* Node1, TTreeNode* Node2, int Data, int &Compare); 參數解釋: Write an OnCompare event handler to customize the sort order of the nodes in the tree view. Set the Compare parameter to a value less than 0 if Node1 is less than Node2. Set Compare to 0 if Node1 is equivalent to Node2, and set Compare to a value greater than 0 if Node1 is greater than Node2. If an OnCompare event handler is not provided, tree view nodes are sorted alphabetically, based on their labels.
760729
一般會員


發表:32
回覆:51
積分:16
註冊:2004-09-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-17 21:34:47 IP:59.105.xxx.xxx 未訂閱
Zard 你好: 謝謝, 我試試看.
系統時間:2024-05-04 20:24:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!