我有一个包含多个项目和图标的TView而不是ImageList的MultiView(我以前使用过ImageList,但是它非常坏,并且消耗的CPU也很少)。

发生的事情是:当用户在打开应用程序后第一次点击MasterButton或滑动MultiView时,该应用程序冻结了大约1/3秒,并且幻灯片动画以大约2或3 fps的速度显示,在这第一张幻灯片之后,MultiView将恢复为正常的fps动画。

android - MultiView首播,FPS动画非常低-LMLPHP

我尝试从OnStartShowing删除所有代码,但绝对没有区别。是什么导致此问题?有某种方法可以“预加载”首场演出中可能加载的内容?

最佳答案

一种选择是删除您在多视图中使用的所有标准控件,而改为使用Alcinoe标准控件。它们是双缓冲的,因此您可以预加载它们,并且绘制速度比普通的Delphi样式控件快得多(我说很多)。通常,尽量避免使用所有样式控件(例如Tlabel),而应使用经典控件(例如TText)

另一句话:尝试查看您是否选择了系统上可用的字体,否则当应用程序执行控件的首次渲染时,如果系统上没有使用该字体,则将需要很长时间才能确定带有要使用的字体

注意:我无法发表评论,所以我无法回答@jerrydodge,但我想对他说,他是错误的,使用delphi,您可以使用与studio / xcode一样快的应用程序构建应用程序(至少在柏林,和东京一起,实际上是个小虫子!)您只需要正确构建即可;)尝试使用其双缓冲控件查看alcinoe项目

10-07 22:33