TScrollbar的元件如何讓其不閃爍 |
尚未結案
|
lanyi
一般會員 發表:18 回覆:27 積分:9 註冊:2002-06-26 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
lanyi
一般會員 發表:18 回覆:27 積分:9 註冊:2002-06-26 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
你用它來作 active control (或全Form只有它一個 Control)當然他就閃啦,你多加個 Control 如 Tedit 並將在Form的 ActiveControl 設定別的 Control 就可以了。我在 Delphi 5/7 Window 98 / 2K 都試過。 基本上 TScrollbar 是沒有選項去設定不閃的,我的做法只是勉強修改了它的內部設定使他不閃,但當他拿到 Focus 他是會自己改回來的,沒辦法。不然你就要自己承繼一個子代元件再慢慢修改罷。
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
ddy 版主說得對,是小弟亂試時試亂了。 後來再看清楚,即使你願意承繼 TScrollBar 來修改亦應改不到,因這個閃的動作不是VCL 控制的而是 Windows 的 ScrollBar Class 就是這樣的。除非你原全寫過整個 Scroll Bar (或使用別人寫了的),否則是不可以改變這個動作的。 正途不成小弟就喜觀用旁門 :
1. 加一個可以 Focus 的control (如TEdit 或另一個 TScrollBar),給個名字(如 foo),並讓別的元件(如 ScrollBar1)放在他上面使之不見
2. 在Form的 Active Control 設定一個非 TScrollBar 的Control, Foo 亦可。
3. 在 TScrollBar 的 onChange 事件設定 :
Foo.SetFocus; 這樣,每次使用者按scroll bar 當 Scroll 後 Focus 便會去到看不見的 Foo, ScrollBar1 亦不會閃了。
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
|
YuHeng
一般會員 發表:8 回覆:13 積分:4 註冊:2003-02-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |