微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

创建新表单后,我通常执行这个仪式:

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

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

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

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

解决方法

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

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

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

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

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

原文地址:https://www.jb51.cc/delphi/103626.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐