gpt4 book ai didi

delphi - 为什么 DoubleBuffered 默认被禁用?

转载 作者:行者123 更新时间:2023-12-03 14:33:50 26 4
gpt4 key购买 nike

创建新表单后,我通常会执行以下仪式:

  1. 将名称更改为有意义的名称;
  2. 输入标题
  3. 更改位置属性(DefaultPosOnly 几乎不是用户所期望的);
  4. ShowHint 设置为 true
  5. DoubleBuffered设置为true

我一直想知道为什么默认值是“False”。对我来说,它看起来科技含量低且蹩脚,而且在我的新机器上,我没有注意到性能有任何差异。

旧机器、VNC、远程桌面或虚拟机上的双缓冲可能有问题吗?

你把它打开还是关闭?有什么建议吗?

最佳答案

正如您可能知道的,双缓冲区通常涉及创建与可视组件大小相同的离屏内存缓冲区。在此缓冲区上执行写入/绘图,完成后,整个缓冲区将被“交换”,以便现在将其绘制在可视组件上。

(注意:“交换”可能只是简单地更改指针指向的地址,或者实际上可能涉及复制一 block 内存,例如使用 BitBlt、memcpy 等)

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

当然,还有一种说法是,如今大多数计算机都有足够的空闲内存,所以何必担心呢。不过,如果您不需要的话,我仍然不认为这是默认启用双缓冲的理由。

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

关于delphi - 为什么 DoubleBuffered 默认被禁用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1408664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com