创建新表单后,我通常执行这个仪式:
>将名称更改为有意义的名称;
>键入字幕;
>更改position属性(DefaultPosOnly几乎没有什么用户期望);
>将ShowHint设置为true;
>将DoubleBuffered设置为true;
我一直想知道为什么默认值是’False’。对我来说,它只是看起来低技术和肮脏,在我的新机器我没有注意到性能的任何差异。
在旧机器,VNC,远程桌面或虚拟机可能是doublebuffering问题吗?
解决方法
您可能知道,双缓冲区通常涉及创建一个与可视组件大小相同的屏幕内存缓冲区。在这个缓冲区上执行写入/绘图,当完成时,整个缓冲区被“交换”,使得它现在被绘制在可视组件上。
(注意:“交换”可以包括简单地改变指针指向的地址,或者实际上可能涉及复制一块存储器,例如使用BitBlt,memcpy等)
因此,为启用它的每个组件分配一个合理的内存量来支持这个过程。如果您的应用程序有许多窗口和/或组件,将会分配不大量的内存。如果你不需要平滑的视觉更新/滚动,为什么浪费这个内存?
当然还有一个论点,今天大多数电脑都有足够的内存,所以为什么要担心。但是,我仍然不认为这是默认启用双缓冲的原因,如果你不需要它。
如果手动将DoubleBuffered设置为true对您来说很痛苦,您可以始终创建自己的从内置控件继承的自定义控件/组件,并将DoubleBuffered(和其他属性)设置为所需的默认值。