有關TTreeView 和TPopupMenu的問題 |
答題得分者是:jessechan
|
blowfish
一般會員 發表:8 回覆:35 積分:18 註冊:2002-12-02 發送簡訊給我 |
各位高手大家好, 最近因為工作的關係剛接觸到BCB,深深被BCB所吸引...
但是在coding上遇到了些問題,又找不到人可以問,只來勞煩各位幫忙了. ■TreeView裏有沒辦法做到Drag & Drop,例如把某個Subitem搬到另一個SubItem
下.或者是有沒有像ICQ or MSN Messanger的Conact List那樣的Tree呢(只有
一層,且沒有左手邊的加號和虛線)? ■不知道PopupMenu有沒辦法做到,像按下Windows"開始"跑出來的Menu那樣,就
是左手邊有一條橫向的Bar. ■ToolBar中的ToolButton,怎麼都沒辦法放入大的icon呢?都只能放入小的icon
,有沒有辦法放入像Outlook Express裏,那樣大的icon呢? 呼...一口氣問了這麼多問題,因為剛接觸BCB有對很多地方都不是很懂,希望大家能夠幫忙一下囉!!
先謝謝啦.
------
=== Study, Study and Study === |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
TreeView裏有沒辦法做到Drag & Drop
1. 將Treeview之dragmode設為dmAutomatic
2. 於onDragover
if (Source = TreeView1) Accept=True;3. 於onDragDrop處理你要做的, 下例分別取得Drag drop之source 及目的node { TTreeNode *src,*dst; src = TreeView1->Selected; dst = TreeView1->GetNodeAt(X,Y); }沒有左手邊的加號和虛線 將TreeView之ShowLines及ShowButtons設為False 不知道PopupMenu有沒辦法做到,像按下Windows"開始"跑出來的Menu那樣,就是左手邊有一條橫向的Bar. 大概必須將OwnerDraw設為False後自行去繪 ToolBar中的ToolButton,怎麼都沒辦法放入大的icon呢?都只能放入小的icon,有沒有辦法放入像Outlook Express裏,那樣大的icon呢? 拉大不就變大了嗎? |
blowfish
一般會員 發表:8 回覆:35 積分:18 註冊:2002-12-02 發送簡訊給我 |
引言: TreeView裏有沒辦法做到Drag & Drop 1. 將Treeview之dragmode設為dmAutomatic 2. 於onDragover謝謝板主的回答,解決了大部份的問題. 但是還有其他的問題,>< face="Verdana, Arial, Helvetica">引言: 不知道PopupMenu有沒辦法做到,像按下Windows"開始"跑出來的Menu那樣,就是左手邊有一條橫向的Bar. 大概必須將OwnerDraw設為False後自行去繪 還是不太懂??要怎麼自己畫呢? 有沒有這樣的範例程式呢?if (Source = TreeView1) Accept=True;3. 於onDragDrop處理你要做的, 下例分別取得Drag drop之source 及目的node{ TTreeNode *src,*dst; src = TreeView1->Selected; dst = TreeView1->GetNodeAt(X,Y); }沒有左手邊的加號和虛線 將TreeView之ShowLines及ShowButtons設為False 引言: ToolBar中的ToolButton,怎麼都沒辦法放入大的icon呢?都只能放入小的icon,有沒有辦法放入像Outlook Express裏,那樣大的icon呢? 拉大不就變大了嗎?拉大只會把ToolButton的部份變大,icon還是一樣很小. 因為ToolBar的Image是來自ImageList,而ImageList我只能加入16X16的小icon. 所以有沒有辦法讓ImageList加入較大一點的圖呢? BCB新手
------
=== Study, Study and Study === |
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
|
thomas0728
中階會員 發表:112 回覆:260 積分:89 註冊:2002-03-12 發送簡訊給我 |
|
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
引述
但是還有其他的問題,TreeItem的Image可以做成動態的嗎? 答案是肯定的, 您可以在 Form 上加一個 timer 來測試, 在 Timer 的 Timer event 中加上, TreeView1->Items->Item[X]->ImageIndex = Y; 可任意改變 Y 值, item 的圖示可跟著變化, 但有一個小限制, 就是所改變的 item 不可是正被選取的 item, 不然要等到其它 item 被選取時, 新的值才能生效, 不過您可以試試強迫 redraw, 不知道有沒有用. Jesse Chan
------
Jesse Chan |
blowfish
一般會員 發表:8 回覆:35 積分:18 註冊:2002-12-02 發送簡訊給我 |
引言: 引述 但是還有其他的問題,TreeItem的Image可以做成動態的嗎? 答案是肯定的, 您可以在 Form 上加一個 timer 來測試, 在 Timer 的 Timer event 中加上, TreeView1->Items->Item[X]->ImageIndex = Y; 可任意改變 Y 值, item 的圖示可跟著變化, 但有一個小限制, 就是所改變的 item 不可是正被選取的 item, 不然要等到其它 item 被選取時, 新的值才能生效, 不過您可以試試強迫 redraw, 不知道有沒有用. Jesse Chan謝謝各位的幫忙! >>
------
=== Study, Study and Study === |
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
|
blowfish
一般會員 發表:8 回覆:35 積分:18 註冊:2002-12-02 發送簡訊給我 |
|
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
抱歉, 我上一篇說錯了, 其實關鍵是在
TreeView1->Items->Item[0]->SelectedIndex = X;
因為被選取的圖示是用 SelectedIndex 而不是 ImageIndex 所控制, 故用一行
if (TreeView1->Items->Item[0]->Selected == true)
來判斷是否被選取, 再決定兩個都改還是只改一個.
如此就不用移來移去, 此外所謂插旗子的意思通常是加上一個變數來記錄目前的狀態, 如上述如果在程式中自動選取的話就把那個變數設成 true, 如果是 user 手動選取的話就設定 false, 如果可作相對的應變. Jesse Chan
------
Jesse Chan |
blowfish
一般會員 發表:8 回覆:35 積分:18 註冊:2002-12-02 發送簡訊給我 |
引言: 抱歉, 我上一篇說錯了, 其實關鍵是在 TreeView1->Items->Item[0]->SelectedIndex = X; 因為被選取的圖示是用 SelectedIndex 而不是 ImageIndex 所控制, 故用一行 if (TreeView1->Items->Item[0]->Selected == true) 來判斷是否被選取, 再決定兩個都改還是只改一個. 如此就不用移來移去, 此外所謂插旗子的意思通常是加上一個變數來記錄目前的狀態, 如上述如果在程式中自動選取的話就把那個變數設成 true, 如果是 user 手動選取的話就設定 false, 如果可作相對的應變. Jesse Chan謝謝Jesse詳細的解說,我已經明白了. 是不是在Item被selected時,SelectedIndex and ImageIndex這兩個property都要改變,否則就會出現兩個icon重疊的現像. BCB新手
------
=== Study, Study and Study === |
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
|
blowfish
一般會員 發表:8 回覆:35 積分:18 註冊:2002-12-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |