2017-02-10 61 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環境中設置字體大小。 (像文檔編輯器) –