错误的加速器强调对高DPI的控制

时间:2017-11-16 09:59:40

标签: windows firemonkey delphi

我遇到了一个问题,在具有更高DPI设置的Windows系统上的Firemonkey应用程序中,所有控件上的加速键关键字都没有正确呈现(离文本太远)。我附上了一个屏幕截图来演示问题。 有谁知道如何解决这一问题? 我正在使用Delphi 10.2和Update 1。

Wrong rendering

1 个答案:

答案 0 :(得分:-1)

自己找到了解决办法。

在FMX.Objects.pas中替换(第4472行)

LBaseline := TFontGlyphManager.Current.GetBaseline(ALayout.Font, ACanvas.Scale);

 LBaseline := TFontGlyphManager.Current.GetBaseline(ALayout.Font, 1);

和(第4483,4484行)

FUnderlineBeginPoint.Y := Ceil(FUnderlineBeginPoint.Y) + 1.5;
FUnderlineEndPoint.Y := Ceil(FUnderlineEndPoint.Y) + 1.5;

FUnderlineBeginPoint.Y := Ceil(FUnderlineBeginPoint.Y) + 1.5 * ACanvas.Scale; 
FUnderlineEndPoint.Y := Ceil(FUnderlineEndPoint.Y) + 1.5 * ACanvas.Scale;