我正在使用Delphi 10.2并创建一个多设备应用程序-都是第一次。
但是,我在使UI适合所有界面时遇到问题。让我们以Android设备为例。
我拥有Samsung Galaxy J2 Prime设备。 Delphi 10.2具有一些预设设备,包括4“和5”屏幕。但是,似乎我的设备的屏幕尺寸不适合任何预设设备,介于4“和5”之间。
因此,我总是在屏幕外或开箱即用后遇到UI组件问题。这是一个例子。
在我的IDE上,这就是我所看到的(图片是align = left;文本是align = right):
但是这是我在设备上看到的内容:
我有很多这样的情况。我尝试使用对齐,边距,填充,锚点和各种布局组件,但是我不太了解使用它们的正确方法是什么,什么是“ hacks”。我知道我可以创建一个完全适合我的Samsung Galaxy J2 Prime设备的新预设设备,但是感觉不对,因为这最终意味着我需要为数十个(甚至数百个)设备创建预设。
什么是很好的入门点?
答案 0 :(得分:1)
没有您的代码,当然很难给出适当的建议,但我会尝试给出一些可能性。
图片和文字是两个不同的组成部分。尝试将它们放在TPanel
上,并将其Align
属性设置为alLeft
和alRight
。 TPanel
本身可能是alTop
,但这取决于您的其他元素。
您可以要求屏幕的宽度,然后仅将这两个元素(或所有存在的元素)缩放到有关此信息的需求即可。请记住,还有其他方法可以获取显示器的实际尺寸,这只是第一个建议。
MyWidth := Screen.Monitors[0].Width;
询问设备DPI。有了这些信息,您就可以基本计算出每种设备的理想选择。
Result := Round(10 * Self.Monitor.PixelsPerInch / 96);
也许最好的办法是将这三种方法结合起来以适应大多数设备。