TPanel超过TBevel的开销是多少?

Ken*_*ssa 2 windows delphi

我正在开展一个项目,他们主要使用TPanel来显示斜角(也许设计时间方便面板超过Bevels).

好的,我知道TPanel比TBevel重.Amongs其他东西,每个TPanel创建一个用户对象,这是一个有限的资源.

我想知道的是,除了用户对象之外,TPanel的开销是多少?是不存在的(特别是在现代机器上).

如果您正在使用这样的系统,您会建议:

  • 返回并将所有TPanel更改为TBevel.
  • 说"好吧它很糟糕.让我们不要再做了"或者
  • 这个问题太小了,设计时间的便利性非常值得.

Ser*_*yuz 5

我不知道这个设计是否有意,但是当控件在窗口中组合在一起时,会有轻微的导航行为差异.如果通过箭头键改变焦点,则在具有最后一个标签顺序的焦点之后,第一个控件将被聚焦(向下/向右),反之亦然(向上/向左).IOW焦点将包含在父级中.当然,如果任何控件不需要箭头键.

关于这个问题,正如在评论中已经说明的那样,除了在对象池中使用计数之外,还有与窗口关联的其他资源.它还会浪费一些CPU周期.在剪辑链或消息传递中还有一个级别或者保留一个以上的z顺序列表等等.MSDN 将其视为(我猜导航方面是被引用而不是可视分区):

为了获得最佳性能,需要在逻辑上划分其主窗口的应用程序应该在主窗口的窗口过程中执行,而不是使用子窗口.


尽管如此,正如评论中已经说明的那样,最有可能的是,没有人能够分辨出由几个小组引起的性能或资源差异.