快速大量移動元件 |
缺席
|
ttnnrsseb
中階會員 發表:31 回覆:77 積分:51 註冊:2004-11-22 發送簡訊給我 |
|
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
|
ttnnrsseb
中階會員 發表:31 回覆:77 積分:51 註冊:2004-11-22 發送簡訊給我 |
已有設DoubleBuffered了,是處理很久。
我要做複數選取元件,然後一起移動的功能。 原本是滑鼠移動就會跟著移動,但這樣會很頻繁的做處理。 後來改為滑鼠放開才計算移動,不過就算只移動一次,元件數如果100個還是會頓很久,才移動完成。 ===================引 用 carstyc 文 章=================== 是處理很久?? 還是會閃爍..... 把 Form.DoubleBuffered 設為 True 試看看... ===================引 用 ttnnrsseb 文 章=================== 請教各位先進, 我用迴圈來改變大量的Label 或 Button 的Left 和 Top,處理上會頓很久。 不知有無大量移動元件又可以比較順暢的方式呢? 謝謝! |
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
單移動 100 個元件的位置....理論上應該不會很久啊....
猜測1: 你的 P II or P III 電腦有可能會跑比較久 .... 猜測2: 你的迴圈中間還有處理別的事...是別的事耽誤到了...讓你以為是頓很久.... 猜測3: 你每秒鐘幾十萬上下....所以等個 0.1 秒都覺得頓很久..... 你要不要把移動元件的那段程式碼貼出來看一下啊.....應該比較容易看到問題..... ===================引 用 ttnnrsseb 文 章=================== 已有設DoubleBuffered了,是處理很久。 我要做複數選取元件,然後一起移動的功能。 原本是滑鼠移動就會跟著移動,但這樣會很頻繁的做處理。 後來改為滑鼠放開才計算移動,不過就算只移動一次,元件數如果100個還是會頓很久,才移動完成。 ===================引 用 carstyc 文 章=================== 是處理很久?? 還是會閃爍..... 把 Form.DoubleBuffered 設為 True 試看看... ===================引 用 ttnnrsseb 文 章=================== 請教各位先進, 我用迴圈來改變大量的Label 或 Button 的Left 和 Top,處理上會頓很久。 不知有無大量移動元件又可以比較順暢的方式呢? 謝謝! |
ttnnrsseb
中階會員 發表:31 回覆:77 積分:51 註冊:2004-11-22 發送簡訊給我 |
我寫個簡單的測試,200個元件大概1秒。
看來真的是有其它的判斷去影響了。 不過真的不能更快了嗎? 像Windows桌面的一堆icon在移動感覺超快的。 [code cpp] unsigned long time1 = GetTickCount(); for(int i=0;i<100;i ) { shape[i]->Left = 50; shape[i]->Top = 50; label[i]->Left = 50; label[i]->Top = 50; } unsigned long time2 = GetTickCount(); Label1->Caption = IntToStr(time2 - time1); [/code]
編輯記錄
ttnnrsseb 重新編輯於 2011-10-06 20:02:14, 註解 無‧
|
ttnnrsseb
中階會員 發表:31 回覆:77 積分:51 註冊:2004-11-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |