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

請問如何儲存TreeView中每個分支的資訊

尚未結案
aredfish
一般會員


發表:47
回覆:41
積分:17
註冊:2002-12-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-17 10:53:37 IP:210.241.xxx.xxx 未訂閱
大家好,我想請問一下大家,我想建立一個Form, 左邊是ListView右邊是Treeview TreeView的功能類似檔案總管,可以秀出資料夾及其下的檔案, 然後我希望可以將TreeView上的檔案 "拖" 到左邊的ListView上面去 然後再進行播放或其他的動作, 我的問題是我不知道如何儲存檔案的資訊!! 我的意思是說,一個TreeView的分支是一個檔案,檔案會有相關的檔案資訊 可是在TreeView上面的東西 "只是檔名字串而已", 各位大大能不能體會我的意思, 我的意思是我可以得到檔案資訊,但是我應該要怎麼做才能把這些資訊 融合在一起,這樣子我才能在把檔案 "拖" 過去的同時,也一併把相關資訊 都傳過去,麻煩大家給我一個方向來做這樣子的一個動作,非常謝謝大家!! 發表人 - Gemi0305 於 2003/10/17 11:34:41
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-17 11:39:18 IP:210.66.xxx.xxx 未訂閱
一個node可以存一個object,例如結構等, 請看以下文章最後一篇回覆: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=32707    所以你就可以把檔案的所有資訊都存在你的node上面~ 國泰平安
aredfish
一般會員


發表:47
回覆:41
積分:17
註冊:2002-12-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-17 14:16:27 IP:210.241.xxx.xxx 未訂閱
非常謝謝您,我想再跟您詢問一下AddObject(TTreeNode* Node, const System::AnsiString S, void * Ptr); 這個函數裡面第一個參數是 "哪一個Node", 第三個參數是 "要存入的物件" 那第二個物件是什麼意思呢?? Help裡面是這樣子寫 "The S parameter specifies the Text property of the new node." 我不太清楚這個意義, 是不是只是一行單純的字串用來附加說明後面物件的名稱的呢?? 如果只是這樣,那有什麼實質上的用處嗎?? 發表人 - aredfish 於 2003/10/17 14:17:46
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-17 14:41:43 IP:210.66.xxx.xxx 未訂閱
AddObject的第一個參數,是指要add到那一個node的平行位置, 第二個參數就是這個node的名字, 其實這兩個參數的使用方法就和Add一樣,唯一不同就是,後面可以多存一個Object, 所以多了第三個參數~    關係大概如下:  多了可以存Object,其他使用方法皆同。
Add              AddObject
AddChild         AddChildObject
AddChildFirst    AddChildObjectFirst
AddFirst         AddObjectFirst
Insert           InsertObject
                
  
國泰平安
aredfish
一般會員


發表:47
回覆:41
積分:17
註冊:2002-12-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-17 15:35:03 IP:210.241.xxx.xxx 未訂閱
非常謝謝您,因為利用AddObject這一個函數所產生的node 是與函數內第一個參數(TTreeNode* Node)相平行的位置, 所以我寫了下面的程式來完成我的目的: node = TreeView1->Items->AddChild(root,NULL);   -----1 pItems->AddObject(node, "我是目錄哦"+Name_String, MyRecPtr);---2 TreeView1->Items->Delete(node);----3 我先用第一行建立出子節點, 再用第二行建立出我真正想要的節點 最後第三行再幹掉第一行所產生的我不要的節點......    我想請問一下,我這樣子做對嗎?? 因為我這樣子用好像不是很聰明!! 謝謝大家!!
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-17 15:53:53 IP:210.66.xxx.xxx 未訂閱
請問你是不是要直接建平行的node? 前面第一個參數的部份,可以參考這樣的寫法:  
 
       if (TreeView1->Items->Count==0)
           TreeView1->Items->AddObject(NULL,nodename,Nodedata1);
       else
           TreeView1->Items->AddObject(TreeView1->Items->Item[0],nodename,Nodedata1);    
這樣應該就可以建第一排平行的node~ 國泰平安
aredfish
一般會員


發表:47
回覆:41
積分:17
註冊:2002-12-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-17 17:00:19 IP:210.241.xxx.xxx 未訂閱
非常謝謝您提供的方法, 我想再請問一下AddObject函數的Help裡面 提供了一個將物件內容讀出來的方法,  PMyRec(TreeView1->Selected->Data)->FName; 我看不太懂這一個用法 1. PMyRec是一個結構,上面的寫法是在結構名稱之後再加一個括號    括號內容應該是指 "現在所選擇的Item", 真的可以這樣用嗎??    因為我怎麼試,都會當機~~~~,就好像陣列溢位的錯誤一樣 只要執行到>>>>>>(然後停住) 然後畫面會出現
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-17 18:16:57 IP:210.66.xxx.xxx 未訂閱
引言: 非常謝謝您提供的方法, 我想再請問一下AddObject函數的Help裡面 提供了一個將物件內容讀出來的方法, PMyRec(TreeView1->Selected->Data)->FName; 我看不太懂這一個用法 1. PMyRec是一個結構,上面的寫法是在結構名稱之後再加一個括號 括號內容應該是指 "現在所選擇的Item", 真的可以這樣用嗎?? 因為我怎麼試,都會當機~~~~,就好像陣列溢位的錯誤一樣 只要執行到>>>> 在範例中,的 class="code"> typedef struct MyRec { AnsiString FName, LName; } TMyRec; typedef TMyRec* PMyRec; 所以 PMyRec(TreeView1->Selected->Data)->FName; 就可以看成 ((TMyRec*)(TreeView1->Selected->Data))->FName; 然後,被你點選(就是Selected)的node裡,必須要有data才行, 就是你要有存Object進去,不然它跑到這行,找不到Object,就會出現錯誤。 2. 我不懂TreeView1->Selected->Data的意義是什麼!! 請問一下我要怎麼 利用Help來找到這一項資訊,我找TTreeView及直接打關鍵字都找不到 除非在寫程式的畫面裡寫TreeView1->(然後停住) 然後畫面會出現 Hint,這時我才能得到相關的資訊, 但只有結構, 沒有解說~~~ 我的習慣是,如果這個vcl有在form上,就點選這vcl,然後按F1, 就會出現詳細說明。 或是在程式碼中,把游標停在這個字上(TreeView1、Selected或Data), 然後按F1。這兩個方法出現的說明,都比直接在help上打關鍵字來的多~ 在查一些API指令,也可以如此使用,如果直接在help上打,會查無此字 < face="Verdana, Arial, Helvetica"> 國泰平安
aredfish
一般會員


發表:47
回覆:41
積分:17
註冊:2002-12-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-10-20 13:59:58 IP:210.241.xxx.xxx 未訂閱
謝謝您真的幫了我很多忙,在這個過程中有幾個心得跟大家分享一下 >
系統時間:2024-05-07 17:19:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!