2017-02-10 63 views
1

为什么字体大小偏离因子1.35(太小)。例如,如果我将一个TMemo放在FMX窗体上,并将TextSettings.font.size更改为72,则行之间的间距应该恰好为1“(与VCL中的相同)。但要获得相同的间距,我需要更改备忘缩放到1.35使字体97.2点奇怪的字体也是错误的大小在对话框中选择一种字体这是一个错误还是我有东西设置错了?不进行缩放字体(窗10),一切都报告说,它是看到默认的96 DPI为什么在Delphi FMX应用程序中字体大小偏离因子1.35(太小)使用Delphi FMX

在目前的Win32目标(我还没有尝试过在OSX尚未)

回答

2

按了Embarcadero web site

FMX中的字体大小以设备无关像素(DIP)表示,每个逻辑英寸为 96。 VCL中的字体大小以点表示,每个逻辑英寸有72个。因此,使用相同的Font.Size的文本在FireMonkey的 中较小。

因此,比率是96/72 = 1.3333。

编辑:在MSDN网站上找到关于每英寸点数(DPI)与设备无关像素(DIP)的此very nice explanation。与FMX使用DIP的原因有关。

+0

我看到数学作品了。然而这个链接以点表示:[链接](http://docwiki.embarcadero.com/Libraries/Berlin/en/FMX.Graphics.TFont.Size) –

+0

我确认在OSX中字体大小被视为点和在Windows FMX上,字体大小为DIP(VCL中的点数)。很明显,如果你想让相同的代码在两者上工作,就会出现一个错误。同时,我会用OS条件语句来捕捉它。 –

+1

或者,也许人们可以认为这是正确的行为。如果DIB = Pixel,则在OSX和Win32中,文本与表单其余部分的比例将相同。与OSX(72ppi)相比,它在Windows(96ppi)中只是较小。唯一需要将字体大小乘以96/72的唯一时间是允许Windows用户在WYSIWIG环境中设置字体大小。 (像文档编辑器) –