有關人際關係樹狀圖TREE VIEW的LOCATE找不到問題? |
答題得分者是:ddy
|
killerterry
一般會員 發表:8 回覆:4 積分:2 註冊:2002-10-17 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 我在做一個人際關係的樹狀圖 可是因為我是用身份證字號在連 但是樹狀圖是用ASCII碼在牌滴 樹狀做出來會有錯 如何以介紹人來做連結 而不被ASCII受牽制呢 比如說我是甲 我認識了乙 我因為乙而認識了丙 但是丙的ASCII在乙前面 那麼我在LOCATE時就會先找到丙而找不到乙了 誰能教教我呢實在有點霧煞煞! 可否詳細說明您的架構與問題所在? 比如:您採用資料庫或是單純採用TreeView的元件? 還有您的專題的目的,與資料的存在架構? 不然大家會看不懂您的問題! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
Type TPerson = record rid:integer; ID :string; Name :string; end; var PresonTree :TPreson;宣告一結構如上,PresonTree.rid 你可以填入代表他們之間階層的數值 例如 甲:0~9 乙:10~99 丙:100~999 TreeView 的搜尋(key)用PresonTree.rid,找到後,帶出他的(item)PresonTree.ID,或PresonTree.Name 噓~~~~~~沉思中… 發表人 - ddy 於 2002/10/22 09:19:01 |
killerterry
一般會員 發表:8 回覆:4 積分:2 註冊:2002-10-17 發送簡訊給我 |
就是小弟我在做一個人際關係的關連
比較有像在用在拉保險用的
以我為中心
如果我是A我以身份證字號來做關連
那我的身份證字號是如果說是A123456789
我的朋友有B C D
但是
我用身份證在連B的身份證是C123456789
C的是B123456789
D的是D123456789
那麼我如果要用TreeView以我為最上層因為B我認識C又因為C我認識了
找出的樹狀圖做出來在文字檔裡因該是
A
B
C
D
但是我的B他的身份證字號在C後面牌出來就變成找不到B
變成了
A
C
B
D
那我的個人的資料又是從tABLE連的
要如何做呢????
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
引言: 就是小弟我在做一個人際關係的關連 比較有像在用在拉保險用的 以我為中心 如果我是A我以身份證字號來做關連 那我的身份證字號是如果說是A123456789 我的朋友有B C D 但是 我用身份證在連B的身份證是C123456789 C的是B123456789 D的是D123456789 那麼我如果要用TreeView以我為最上層因為B我認識C又因為C我認識了 找出的樹狀圖做出來在文字檔裡因該是 A B C D 但是我的B他的身份證字號在C後面牌出來就變成找不到B 變成了 A C B D 那我的個人的資料又是從tABLE連的 要如何做呢????Killerterry 兄 你這個問題解決了嗎? 我所提供的方法,不知你試過了嗎? 原因出在你不能用身份證字號作為key 值,因為ASCII的順序不會等於人際關係的順序 也許可以考慮用TList,同一關係的以同一TList建立關聯順序 附上一個結構與TList 的範例供參考, 希望對你有幫助 procedure TForm1.FormButton1Click(Sender: TObject); type PMyList = ^AList; AList = record I: Integer; C: Char; end; var MyList: TList; ARecord: PMyList; B: Byte; Y: Word; begin MyList := TList.Create; try New(ARecord); ARecord^.I := 100; ARecord^.C := 'Z'; MyList.Add(ARecord); {Add integer 100 and character Z to list} New(ARecord); ARecord^.I := 200; ARecord^.C := 'X'; MyList.Add(ARecord); {Add integer 200 and character X to list} { Now paint the items onto the paintbox} Y := 10; {Variable used in TextOut function} for B := 0 to (MyList.Count - 1) do begin ARecord := MyList.Items[B]; Canvas.TextOut(10, Y, IntToStr(ARecord^.I)); {Display I} Y := Y 30; {Increment Y Value again} Canvas.TextOut(10, Y, ARecord^.C); {Display C} Y := Y 30; {Increment Y Value} end; { Cleanup: must free the list items as well as the list } for B := 0 to (MyList.Count - 1) do begin ARecord := MyList.Items[B]; Dispose(ARecord); end; finally MyList.Free; end; end;噓~~~~~~沉思中… |
killerterry
一般會員 發表:8 回覆:4 積分:2 註冊:2002-10-17 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |