請教一個有關TTreeView的簡單問題. |
答題得分者是:RaynorPao
|
blowfish
一般會員 發表:8 回覆:35 積分:18 註冊:2002-12-02 發送簡訊給我 |
最近在用TTreeView上,又遇到一個令我感到不解的地方. 在BCB Help中,看到TTreeView property -- Items的說明中,有一段這樣的說明:
For example,to access the second item in the tree view, you could use the following code.
MyTreeNode = TreeView1->Items[1];
於是我照他的說做去寫一個小程式來試試看, 如下:
TTreeNode *tmpNode; tmpNode = TreeView1->Items[2]; ShowMessage(tmpNode->Text);結果在compile時,出現了這樣的錯誤訊息: Cannot convert 'TTreeNodes to TTreeNode *' 怪了,為什麼會這樣呢? 要用TreeView1->Items->Item[2] or TreeView1->Items->operator [](2)這樣才可以. TTreeNodes不是已經有定義operator '[]'了嗎?應該是可以直接用Items[2]吧? 為什麼我那樣用不可以,實在是不懂,也被搞糊塗了... 能不能請高手們替我解惑一下.謝謝! === Study, Study and Study ===
------
=== Study, Study and Study === |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 最近在用TTreeView上,又遇到一個令我感到不解的地方. 在BCB Help中,看到TTreeView property -- Items的說明中,有一段這樣的說明: For example,to access the second item in the tree view, you could use the following code. MyTreeNode = TreeView1->Items[1]; 於是我照他的說做去寫一個小程式來試試看, 如下:TreeView1->Items is a pointer to a TTreeNodes object, so TreeView1->Items[2] is a TTreeNodes object. In this case it's not a valid object, because TreeView->Items does not point to an array element. --TTreeNode *tmpNode; tmpNode = TreeView1->Items[2]; ShowMessage(tmpNode->Text);結果在compile時,出現了這樣的錯誤訊息: Cannot convert 'TTreeNodes to TTreeNode *' 怪了,為什麼會這樣呢? 要用TreeView1->Items->Item[2] or TreeView1->Items->operator [](2)這樣才可以. TTreeNodes不是已經有定義operator '[]'了嗎?應該是可以直接用Items[2]吧? 為什麼我那樣用不可以,實在是不懂,也被搞糊塗了... 能不能請高手們替我解惑一下.謝謝!
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
blowfish
一般會員 發表:8 回覆:35 積分:18 註冊:2002-12-02 發送簡訊給我 |
引言: TreeView1->Items is a pointer to a TTreeNodes object, so TreeView1->Items[2] is a TTreeNodes object. In this case it's not a valid object, because TreeView->Items does not point to an array element.謝謝Raynor的回答. 你說明的部份,我已經了解了. 但是還有一個地方,我不懂的,就是為什麼我用這樣的方式TreeView1->Items->operator [](2) 也可以取出,第三個node?? 就跟用TreeView1->Items->item[2]取出來的內容一樣? 這個是我最不懂的地方... > ===
------
=== Study, Study and Study === |
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 但是還有一個地方,我不懂的,就是為什麼我用這樣的方式TreeView1->Items->operator [](2) 也可以取出,第三個node?? 就跟用TreeView1->Items->item[2]取出來的內容一樣? 這個是我最不懂的地方... > >>< face="Verdana, Arial, Helvetica"> blowfish 你好: 以下的內容轉貼自 BCB 6.0 Help <>> >{ >
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
blowfish
一般會員 發表:8 回覆:35 積分:18 註冊:2002-12-02 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我想我應該懂了,那就是我可以像用二維陣列, TreeView1->Items[0][2] 來取出node,是嗎? 是不是代表一個TTreeView,可以包含很多TTreeNodes呢? [/green]blowfish 你好: 我試過了你寫的方式~~的確可以正確執行喔< > 因此~~理論上應該是醬子沒有錯< > 不過~~我在想喔~~什麼時候會有以下這種情況呢 >>>][
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |