2010-11-04 53 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组成部分,但你必须付出,