【发布时间】:2011-11-23 03:21:39
【问题描述】:
我正在做一个项目,他们基本上将 TPanel 用于显示斜面的唯一目的(也许在设计时 Panel 比斜面更方便)。
好的,我知道 TPanel 比 TBevel 重。除此之外,每个 TPanel 创建一个用户对象,这是一个有限的资源。
我想知道,除了用户对象之外,TPanel 的开销是多少?它是不是几乎不存在(尤其是在现代机器上)。
如果您正在开发这样的系统,您会建议:
- 返回并将所有 TPanel 更改为 TBevel。
- 说“好吧,这很糟糕。以后不要再这样做了” 或
- 关注点太小了,设计时的便利性很好 值得。
【问题讨论】:
-
这可能是 Windows 3.1 时代的一个问题。
-
这个问题无法回答,IMO。每个答案都取决于太多的未知变量(例如,“基本使用”可能意味着“完全”或“有时”或“经常”或“总是”)。正如安德烈亚斯所说,我不会担心。主要关注的是 TPanel 使用的资源(窗口句柄、画布的设备上下文等),在 32 位和 64 位 Windows 下,它们大部分不再是问题,而且 VCL 做得很好在需要时创建它们并缓存以避免释放和重新分配。
-
架构方面的考虑可以让这完全不成问题,例如根据需要创建/释放表单,而不是在应用程序启动时全部创建。
-
使用任何你喜欢的 - 它没有明显的区别。