所以我在Android上使用Delphi XE-8,使用线程在后台工作。我有一个计时器更新来自主线程的时钟标签(也许有一种更有效的方法来执行此操作)。
现在,当我在Android上启动我的应用程序时,随机时钟的字符缩小或放在角色所在的上方或下方。在应用程序的生命周期中,对于相同的字符会发生这种情况,当我关闭并重新启动应用程序时,它可能是不同的字符。数字通常具有指数的大小,有时候字符完全缺失。而另一次这个bug根本没有出现......它发生在4-5次中的大约1次。
图片(下方)' 5'被放置在标签的中间位置,2是不可见的(可能完全在可见标签的上方或下方)。
时钟代码如下:
procedure TPage0Form.ClockTimerTimer(Sender: TObject);
begin
ClockTimer.Interval := 1000;
Page0Form.lb_Clock.Text:= ( TimeToStr(Time));
end;
所以我尝试了很多东西。 1.将时钟放在一个线程中,使用同步调用更新到UI。 2.使用位图而不是标签(同一问题)。 3.使用标签的设置,标签大小,文本大小,字体,textAlignment,边距,填充等。 但一切都无济于事。
我正在使用多个Android设备,其中包含所需的(有些不是)处理器,并且所有这些设备都会出现错误。
是否有合理的解释(我做了一些根本错误的事情)以及如何解决这个问题?
感谢您的时间和精力。
编辑:这也适用于XE6和XE7 ...... Edit2:我也尝试过使用:
FMX.Types.GlobalUseGDIPlusClearType
FMX.Types.GlobalUseDirect2D
FMX.Types.GlobalUseGPUCanvas
没有改善这种情况。