treeview的節點計算 |
尚未結案
|
kenton
一般會員 發表:24 回覆:21 積分:9 註冊:2005-05-13 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
kenton 妳好: 我提供一個自定函式如下,妳在添加節點與刪除節點的動作之後,都呼叫一次這個自定函式,看看這樣的效果是不是妳所需要的?
// 於 .h 檔案內 private: // User declarations void __fastcall TreeViewRenum(void); // 於 .cpp 檔案內 void __fastcall TForm1::TreeViewRenum(void) { int no = TreeView1->Items->Count; if (no > 0) { TStringList *slCol = new TStringList; slCol->CommaText = TreeView1->Items->Item[0]->Text; // 將第一個節點的字樣拆解到 slCol 內 TreeView1->Items->Item[0]->Text = slCol->Strings[0] " (" IntToStr(no) ")"; // 重新組合第一個節點的顯示字樣 delete slCol; } } // 使用範例 void __fastcall TForm1::btnAddClick(TObject *Sender) { //.... 添加節點資料的動作 .... TreeViewRenum(); } void __fastcall TForm1::btnDeleteClick(TObject *Sender) { //.... 刪除節點資料的動作 .... TreeViewRenum(); }上述自定函式會在第一個節點的後方加上一個空格、左右括號 (括號內為節點總數量的數字),這個自定函式是以空白字元為拆解與組合的基準,因此第一個節點的原有標題字樣中不可含有空白字元,否則就必須修改一下自定函式中拆解與組合的方式。 7 天天敲鍵盤 v 時時按滑鼠 8 |
kenton
一般會員 發表:24 回覆:21 積分:9 註冊:2005-05-13 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
kenton
一般會員 發表:24 回覆:21 積分:9 註冊:2005-05-13 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
kenton 妳好: 程式修改如下,試試看吧:
// 於 .h 檔案內 private: void __fastcall TreeViewRenum(TTreeNode* node); // 於 .cpp 檔案內 // 傳入的參數是 "要計算子節點數量" 的節點 void __fastcall TForm1::TreeViewRenum(TTreeNode* node) { if (node) { TStringList *slCol = new TStringList; slCol->CommaText = node->Text; node->Text = slCol->Strings[0] " (" IntToStr(node->Count) ")"; delete slCol; } } // 使用範例 - 添加節點 void __fastcall TForm1::btnAddClick(TObject *Sender) { TTreeNode* node = TreeView1->Selected; AnsiString nodeStr = "新節點"; TTreeNode* child = TreeView1->Items->AddChild(node, nodeStr); TreeView1->Selected = child; TreeViewRenum(node); } // 使用範例 - 刪除節點 void __fastcall TForm1::btnDeleteClick(TObject *Sender) { TTreeNode* node = TreeView1->Selected->Parent; if (TreeView1->Selected) { TreeView1->Items->Delete(TreeView1->Selected); } TreeViewRenum(node); }7 天天敲鍵盤 v 時時按滑鼠 8 |
kenton
一般會員 發表:24 回覆:21 積分:9 註冊:2005-05-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |