如果TAction链接到一个对象,如TToolButton(TToolBar的项目)或TActionClientItem(TActionToolBar的项目),并且该对象在运行时可见,那么无论何时在表单中移动鼠标(除工具栏之外的任何地方),似乎基于可见TA的数量在cpu上进行额外加载,这与在前面提到的任一条上没有看到任何TAction链接项时移动鼠标相比.
很明显,额外负载的显着百分比完全取决于您运行的是什么类型的装备,但我注意到当您拥有一个应用程序时,实际差异可能很大:
>很多可见的TAction链接项
>一个已经为onMouSEOver事件执行次要计算的自定义组件,例如更改控件的外观
>自定义视觉样式
所以问题是为什么可见项目链接的TAction组件会影响鼠标移动的处理?
动作的设计基于动作的空闲时间更新.移动鼠标时,应用程序会收到大量排队的消息.每次清空队列时,应用程序都被视为空闲,并且所有操作都会更新.这可能导致高cpu利用率.
这个问题在VCL中众所周知并得到承认.例如,看看TApplication.ActionUpdateDelay.