有關TreeView的問題??? |
尚未結案
|
minjiu
中階會員 發表:27 回覆:119 積分:69 註冊:2002-06-26 發送簡訊給我 |
假設我有資料檔,有以下2個欄位,請問要如何利用TreeView,以Tree的方式表現出來(如下圖)... 這個問題之前我已有問過,請參考...
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=39765 但...若TreeID超過10,就會有BUG出現(TreeNode會加錯地方)...
請問有比較好的解決方法嗎?煩請各位高手回答一下吧!!謝謝!!
[TreeID] [TreeName] ======================= 1 ROOT 1,1 A 1,1,1 A1 1,10 J 1,1,2 A2 1,1,3 A3 1,2 B 1,2,1 B1 1,3 C 1,3,1 C1 1,4 D 1,5 E 1,6 F 1,7 G 1,8 H 1,9 I ======================== TreeView產生結果: ROOT |-------AA | | | |-------A1 | | | |-------A2 | | | |-------A3 | |-------BB | | | |-------B1 | |-------C | -------C1 | |-------D | |-------E | |-------F | |-------I | |-------J |
minjiu
中階會員 發表:27 回覆:119 積分:69 註冊:2002-06-26 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
minjiu 你好: 看過你前一篇, 你將","吃掉後, 會造成後續排序更為困難... 既然你已用 TStringList 先行處理 Data, 那建議你用 TStringList.CustomSort 先將資料排好, 再加入 TreeView. 若對 CustomSort 不熟, 可參考 :
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=38370 TreeID 帶著 "," 做 CustomSort 時, 可運用 IdGlobal.pas 中的 Fetch Function 依次取出 "," 前之數字字串, 轉為 Integer (用 StrTointDef Function可能比較好用), 以決定 Item 的先後. 參考看看 :
use 加 IdGlobal, Math
function MySort(List: TStringList; Index1, Index2: Integer): Integer; var s1,s2:string; begin s1 := List[Index1]; s2 := List[Index2]; repeat Result := CompareValue(StrToIntDef(Fetch(s1,','),0), StrToIntDef(Fetch(s2,','),0)); until ((s1='') and (s2='')) or (Result<>0) end; procedure TForm1.Button1Click(Sender: TObject); var t:TStringList; begin t:=TStringList.Create; try t.AddStrings(memo1.lines); memo1.Lines.Clear; t.CustomSort(@MySort); finally memo1.lines.AddStrings(t); t.Free; end; end;發表人 - Mickey 於 2003/12/02 22:37:28 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |