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

移動圖片時,會發生殘影的現象!!要怎處理?

答題得分者是:wameng
bcshahuo
一般會員


發表:28
回覆:28
積分:11
註冊:2005-01-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-27 10:37:22 IP:61.219.xxx.xxx 未訂閱
//移動設定 rx_left := x - round(rxgifanimator1.width / 2); While rxgifanimator1.Left <> rx_left Do Begin If rx_left > rxgifanimator1.Left Then Begin rxgifanimator1.Left := rxgifanimator1.Left 1 End Else Begin rxgifanimator1.Left := rxgifanimator1.Left - 1 End; For i := 1 To 10 Do Begin rxgifanimator1.Repaint;==>會發生殘影 End; End; 這是小弟的片段程式碼,當我想移動圖片時,會發生殘影? 不知道有什麼好方法可以解決。 如果我改成在form的Refresh,會發生一直閃的現象。 如何能正常移動圖片呢?
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-27 11:11:23 IP:219.68.xxx.xxx 未訂閱
試試看 Form1.DoubleBuffered:=True; @瞭解越多.懂得越少@
bcshahuo
一般會員


發表:28
回覆:28
積分:11
註冊:2005-01-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-27 11:37:45 IP:61.219.xxx.xxx 未訂閱
引言: 試試看 Form1.DoubleBuffered:=True; @瞭解越多.懂得越少@
大大,我剛有看到這個指令,但好像是c ,所以我想說delphi不會有@@ 不過還真的有。但我用在active上,結果,還是會有殘影,是我發錯位置 ?還請大大再指教一下~~~感謝
wameng
版主


發表:31
回覆:1336
積分:1183
註冊:2004-09-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-27 11:55:19 IP:61.222.xxx.xxx 未訂閱
設定在Image的Parent的DoubleBuffered為True才行。 如 Image 在Panel 上。 Panel1.DoubleBuffered := True;
bcshahuo
一般會員


發表:28
回覆:28
積分:11
註冊:2005-01-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-27 12:44:31 IP:61.219.xxx.xxx 未訂閱
引言: 設定在Image的Parent的DoubleBuffered為True才行。 如 Image 在Panel 上。 Panel1.DoubleBuffered := True;
不好意思,版主大大,我圖是直接放在form上。 不過不知道為什麼不行? 附圖(未執行前) 執行中
wameng
版主


發表:31
回覆:1336
積分:1183
註冊:2004-09-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-27 13:16:08 IP:61.222.xxx.xxx 未訂閱
DoubleBuffered := True 是在 Form.Create 事件中處理的。 忘了!我把圖片閃爍及您的殘影搞混了。 使用Image 元件是不會有殘影的。 可能是您使用 rxgifanimator 元件的關係。 我使用 GifImageLite 及將Image.TransParent := True 就沒有這個問題。 我重來不用 rxLib 。 Sorry!..
bcshahuo
一般會員


發表:28
回覆:28
積分:11
註冊:2005-01-25

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-27 13:41:53 IP:61.219.xxx.xxx 未訂閱
引言: DoubleBuffered := True 是在 Form.Create 事件中處理的。 忘了!我把圖片閃爍及您的殘影搞混了。 使用Image 元件是不會有殘影的。 可能是您使用 rxgifanimator 元件的關係。 我使用 GifImageLite 及將Image.TransParent := True 就沒有這個問題。 我重來不用 rxLib 。 Sorry!..
For i := 1 To 10 Do Begin rxgifanimator1.Refresh; image1.Refresh; End; End; End; procedure Tstart_map.FormCreate(Sender: TObject); begin start_map.DoubleBuffered := True end; 板主大大,我覺得是我搞錯了。因為 我再用一張image的元件放圖,結果兩張都會有殘影。 我是在迴圈中放Refresh,讓他看起來有在移動。
bcshahuo
一般會員


發表:28
回覆:28
積分:11
註冊:2005-01-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-01-27 13:47:35 IP:61.219.xxx.xxx 未訂閱
引言:
引言: DoubleBuffered := True 是在 Form.Create 事件中處理的。 忘了!我把圖片閃爍及您的殘影搞混了。 使用Image 元件是不會有殘影的。 可能是您使用 rxgifanimator 元件的關係。 我使用 GifImageLite 及將Image.TransParent := True 就沒有這個問題。 我重來不用 rxLib 。 Sorry!..
For i := 1 To 10 Do Begin rxgifanimator1.Refresh; image1.Refresh; End; End; End; procedure Tstart_map.FormCreate(Sender: TObject); begin start_map.DoubleBuffered := True end; 板主大大,我覺得是我搞錯了。因為 我再用一張image的元件放圖,結果兩張都會有殘影。 我是在迴圈中放Refresh,讓他看起來有在移動。
板主大大,感謝你,我發現問題了 因為我是圖片重整所以一直有殘影 如果form.Refresh; DoubleBuffered := True 就行了, 非常之感謝~~~^^(每天都得麻煩你,歹勢@@)
系統時間:2017-10-22 21:29:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!