全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3919
推到 Plurk!
推到 Facebook!

關於ListView的設定

答題得分者是:老大仔
Gordon0823
一般會員


發表:4
回覆:5
積分:1
註冊:2010-08-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-09-07 10:11:39 IP:211.74.xxx.xxx 訂閱
不好意思,我想請問一下各位高手,
本人寫了一支小程式,將程式執行列表載入到ListView上面,
當程式執行時,ListView會顯示該行反白。

目前我用 ListView->Items->Item[i]->Selected來做反白的動作
但是出現幾個問題
1. 開始執行時,ListView不會顯示Select,一定要點入ListView的視窗才會正常顯示(也就是先用滑鼠反白)
2. 點入其他元件ListView的反白就消失了
3.是否可以讓ListView單純顯示,對於外部的控制(如用滑鼠點選依然會反白,下一秒才回偵測值)不會有反應?
4.當Select的值超過顯示大小,是否能控制捲軸讓Select的選項能夠顯示在視窗內?

希望各位高手能指導我一下,或分享一下意見,謝謝。
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-09-07 11:28:19 IP:59.120.xxx.xxx 未訂閱
1. ListView先SetFocus,再來做Selected,就會反白。
2 3. 這是因為滑鼠已經Focus到別的元件上了,所以理所當然的反白會不見。
要解決這方法可用DrawItem的方式來實做。
詳細用法請先在本站爬文,本站已經有許多文章有討論過關於DrawItem的東西
4. 這應該是沒辦法,要不然就再用個ListBox之類的東西來給使用者知道已有哪些有選擇。

===================引 用 Gordon0823 文 章===================
不好意思,我想請問一下各位高手,
本人寫了一支小程式,將程式執行列表載入到ListView上面,
當程式執行時,ListView會顯示該行反白。

目前我用 ListView->Items->Item[i]->Selected來做反白的動作
但是出現幾個問題
1. 開始執行時,ListView不會顯示Select,一定要點入ListView的視窗才會正常顯示(也就是先用滑鼠反白)
2. 點入其他元件ListView的反白就消失了
3.是否可以讓ListView單純顯示,對於外部的控制(如用滑鼠點選依然會反白,下一秒才回偵測值)不會有反應?
4.當Select的值超過顯示大小,是否能控制捲軸讓Select的選項能夠顯示在視窗內?

希望各位高手能指導我一下,或分享一下意見,謝謝。
Gordon0823
一般會員


發表:4
回覆:5
積分:1
註冊:2010-08-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-09-07 13:35:04 IP:211.74.xxx.xxx 訂閱
謝謝老大的說明,
現在第一點的問題已經解決。

但是在DrawItem上面,我不知道該如何利用。
因此轉換個方向,想利用改變該行的底色來取代反白。
ListView似乎不支援這種作法,我想先嘗試著用StringGrid來解決這問題。
但不知道能不能用來解決問題4,還是有其他元件可以做到?
===================引 用 老大仔 文 章===================
1. ListView先SetFocus,再來做Selected,就會反白。
2 3. 這是因為滑鼠已經Focus到別的元件上了,所以理所當然的反白會不見。
要解決這方法可用DrawItem的方式來實做。
詳細用法請先在本站爬文,本站已經有許多文章有討論過關於DrawItem的東西
4. 這應該是沒辦法,要不然就再用個ListBox之類的東西來給使用者知道已有哪些有選擇。


ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-09-07 13:58:02 IP:60.248.xxx.xxx 訂閱
rowselect =整行反白
------
======================
昏睡~
不昏睡~
不由昏睡~
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-09-07 16:31:16 IP:59.120.xxx.xxx 未訂閱
既然是以DrawItem了,那就請用CustomDrawItem為關鍵字來搜尋本站文章。
也順帶一個連結給您:
http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=49233
其他的請自行爬文

另外~再给您一些方向:
1. 當DrawItem中,您只要判斷該item是否有被選到,有選到的話就將顏色改變。(假如不是的話就都不用做)
2. 該篇文章雖然是在講ListBox,但您可以用在ListView中,只不過~您必須寫在CustomDrawItem中。

此方式是直接將該item給著色上去,利用著色,來代替所選擇的顏色。
選到哪個item,該item就變色,這樣給人的感覺就像是選到了一樣,
而且也可以讓"因滑鼠點選到別的元件時,ListView被選到item顏色就不見" 給避免掉。


===================引 用 Gordon0823 文 章===================
謝謝老大的說明,
現在第一點的問題已經解決。

但是在DrawItem上面,我不知道該如何利用。
因此轉換個方向,想利用改變該行的底色來取代反白。 <--- 我一開始所提供的方法就是如此
ListView似乎不支援這種作法,我想先嘗試著用StringGrid來解決這問題。
但不知道能不能用來解決問題4,還是有其他元件可以做到?
===================引 用 老大仔 文 章===================
1. ListView先SetFocus,再來做Selected,就會反白。
2 3. 這是因為滑鼠已經Focus到別的元件上了,所以理所當然的反白會不見。
要解決這方法可用DrawItem的方式來實做。
詳細用法請先在本站爬文,本站已經有許多文章有討論過關於DrawItem的東西
4. 這應該是沒辦法,要不然就再用個ListBox之類的東西來給使用者知道已有哪些有選擇。


編輯記錄
老大仔 重新編輯於 2010-09-07 16:36:29, 註解 無‧
系統時間:2024-11-23 7:45:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!