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

delphi – 为什么默认情况下禁用DoubleBuffered?,第1张

概述创建新表单后,我通常执行这个仪式: >将名称更改为有意义的名称; >键入字幕; >更改position属性(DefaultPosOnly几乎没有什么用户期望); >将ShowHint设置为true; >将DoubleBuffered设置为true; 我一直想知道为什么默认值是’False’。对我来说,它只是看起来低技术和肮脏,在我的新机器我没有注意到性能的任何差异。 在旧机器,VNC,远程桌面或虚 创建新表单后,我通常执行这个仪式:

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

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

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

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

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

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

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

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

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

总结

以上是内存溢出为你收集整理的delphi – 为什么默认情况下禁用DoubleBuffered?全部内容,希望文章能够帮你解决delphi – 为什么默认情况下禁用DoubleBuffered?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1281828.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存