2010-11-04 54 views
1

我的應用程序有許多圖形和可視化組件......所以我打開了doublebufferd = true在每個組件和儘可能。使用VCL控件雙緩衝區

後來我想,以保持某些組件使用面板(它使對準容易) 但同時面板必須有一個透明的財產(當時只有我能顯示面板下方的圖形)

所以我發現了一個面板'TJVPanel'在我的托盤中透明屬性,所以我用它,並設置透明=真; align = right(好吧);

每一件事情是確定的,但是當我被調整,在jvpanel內部組件和jvpanel被彈

所以我搜索doublebufferd但沒有成功

誰能告訴我解決這個或我推薦的另一個組件
,但我更喜歡使用jvpanel經過一些修改

+0

,如果你給我推薦一個VCL請確保它是免費的或不 – VibeeshanRC 2010-11-04 06:38:45

+0

對不起,我忘了提輕拂,但現在我已經編輯了,再次抱歉 – VibeeshanRC 2010-11-04 10:24:47

回答

2

你試過重寫你的jvPanel的OnPaint方法,所以它什麼都不繪。您可能必須讓它通過傳遞Paint消息或調用其Paint方法來繪製子控件。

我有一段時間沒有這樣做,但它可能會指出你在正確的方向。

+0

我不知道如何做到這一點但感謝的想法 – VibeeshanRC 2010-11-04 06:44:22

+0

我假設您調整面板的大小時,組件閃爍。在你的問題中有一些詞語缺失,這使得它有點令人困惑。 「一切都很好,但是當我調整大小時,jvpanel和jvpanel中的組件是???????」我猜你想用單詞「閃爍」替換最後三個單詞?它是否正確 ? – 2010-11-04 08:51:22

+0

http://www.efg2.com/Lab/Library/Delphi/Graphics/VCLRTL.htm - 該頁面發表以下評論。我沒有測試過它。 ControlStyle:爲防止表單在每次執行繪製時重繪其背景,即使在使用雙緩衝技巧時也會導致閃爍,請在FormCreate中放入以下內容: Form1.ControlStyle:= Form1.ControlStyle + [csOpaque ]。 此頁面還有很多其他有用的提示。 – 2010-11-04 08:54:27

0

有透明度一些TMS組成部分,但你必須付出,