我的 Firemonkey Delphi XE3 项目遇到了一个奇怪的问题,我在 OSX 10.8.3 上测试了该应用程序。
通常当鼠标光标移动到文本上时,它看起来:
但是在应用程序调用打开一个标准对话框之后,我再次将鼠标光标移到文本上,它看起来像这样:
我怀疑这个问题是由于 Retina 显示器造成的,因为我的朋友在非视网膜 mac 上测试过它,它看起来不错,我的 macbook 支持视网膜,我遇到了这个问题..
有什么想法可以解决这个问题吗?
我的 Firemonkey Delphi XE3 项目遇到了一个奇怪的问题,我在 OSX 10.8.3 上测试了该应用程序。
通常当鼠标光标移动到文本上时,它看起来:
但是在应用程序调用打开一个标准对话框之后,我再次将鼠标光标移到文本上,它看起来像这样:
我怀疑这个问题是由于 Retina 显示器造成的,因为我的朋友在非视网膜 mac 上测试过它,它看起来不错,我的 macbook 支持视网膜,我遇到了这个问题..
有什么想法可以解决这个问题吗?
这种“错误”实际上与 FM2 中所做的更改有关(您提到了 XE3/FM2,但问题被标记为 XE2/FMX),但它有时也发生在 FMX 应用程序中。解决方案是简单地调用repaint()
标签上的函数。ShowMessage
为简单起见,我将假设,但只要您处理 UI 中的任何内容(消息框、面板、矢量形状等),这同样适用。
ShowMessage('My Message');
Label1.Repaint;
使用 repaint() 应该是您在适当时使用的东西。这是一个繁重的操作(一般来说),你应该自由地使用它。一般准则;
TLabel
代替上TGlowEffect
)实际上,我已经将整个应用程序的界面放在 TLayout 或 TRectangle 中,颜色为 claNull。这样,我可以在一次调用中重新绘制整个界面。然后,我将各个主要部分分成子 TLayouts(例如警报栏),然后如果我需要对其进行动画处理(例如,当有新消息时滑入视图中),可以选择在计时器上重新绘制它。