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

delphi – 为什么默认情况下禁用DoubleBuffered?

发布时间:2020-12-15 05:21:45 所属栏目:大数据 来源:网络整理
导读:创建新表单后,我通常执行这个仪式: 将名称更改为有意义的名称; 键入字幕; 更改position属性(DefaultPosOnly几乎没有什么用户期望); 将ShowHint设置为true; 将DoubleBuffered设置为true; 我一直想知道为什么默认值是’False’。对我来说,它只是看起来低技
创建新表单后,我通常执行这个仪式:

>将名称更改为有意义的名称;
>键入字幕;
>更改position属性(DefaultPosOnly几乎没有什么用户期望);
>将ShowHint设置为true;
>将DoubleBuffered设置为true;

我一直想知道为什么默认值是’False’。对我来说,它只是看起来低技术和肮脏,在我的新机器我没有注意到性能的任何差异。

在旧机器,VNC,远程桌面或虚拟机可能是doublebuffering问题吗?

你把它关闭还是关闭?任何建议?

解决方法

您可能知道,双缓冲区通常涉及创建一个与可视组件大小相同的屏幕内存缓冲区。在这个缓冲区上执行写入/绘图,当完成时,整个缓冲区被“交换”,使得它现在被绘制在可视组件上。

(注意:“交换”可以包括简单地改变指针指向的地址,或者实际上可能涉及复制一块存储器,例如使用BitBlt,memcpy等)

因此,为启用它的每个组件分配一个合理的内存量来支持这个过程。如果您的应用程序有许多窗口和/或组件,将会分配不大量的内存。如果你不需要平滑的视觉更新/滚动,为什么浪费这个内存?

当然还有一个论点,今天大多数电脑都有足够的内存,所以为什么要担心。但是,我仍然不认为这是默认启用双缓冲的原因,如果你不需要它。

如果手动将DoubleBuffered设置为true对您来说很痛苦,您可以始终创建自己的从内置控件继承的自定义控件/组件,并将DoubleBuffered(和其他属性)设置为所需的默认值。

(编辑:李大同)

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

    推荐文章
      热点阅读