加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 何时使用TPanel FullRepaint?

发布时间:2020-12-15 09:52:02 所属栏目:大数据 来源:网络整理
导读:我注意到当我将TPanel.FullRepaint设置为False时,调整大小的闪烁变得更好.由于属性存在且默认为True,因此必须有一些原因. 如何决定是否应该设置? 帮助只是声明: FullRepaint controls how the panel responds when it is resized. When FullRepaint is tru
我注意到当我将TPanel.FullRepaint设置为False时,调整大小的闪烁变得更好.由于属性存在且默认为True,因此必须有一些原因.

如何决定是否应该设置?

帮助只是声明:

FullRepaint controls how the panel responds when it is resized. When FullRepaint is true,the entire panel,including the beveled border repaints when the size changes. When FullRepaint is false,only the area inside the beveled border repaints.

http://docwiki.embarcadero.com/Libraries/XE3/en/Vcl.ExtCtrls.TPanel.FullRepaint

该文本说它做了什么,但不是为什么……

解决方法

可以显示缺少Fullrepaint的效果,您必须决定是否需要它.

>将面板放在表格上,将锚点设置为所有方向
>将PaintCaption设置为false或使用空标题
>在表单上放置另一个面板,这样如果要调整大小
形式,第一个面板的部分将由第二个面板覆盖.

运行程序并调整表单大小,有时第一个面板的边框将不会刷新.
发生这种情况是因为在WMWindowPosChanged中(FullRepaint或(ShowCaption和(Caption<>‘))))将调用invalidate,否则只有InvalidateRect(Handle,Rect,True)才会包含权利和/或底部边框无效. (感谢Sertac Akyuz的纠正)

正如您所提到的,避免使用invalidate可以减少闪烁,并且在许多情况下不会给出完全无效的需要,因此用户可以自行决定如何继续.

面板很少使用,鞋面没有Fullrepaint

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读