对于不同的显示器DPI设置,我在表单上自动缩放控件时出现问题。 Rad Studio 10.2 Tokio。 "启用高dpi"是的。我在设计时将表单的PixelsPerInch设置为96。我将TPageControl放在一个表单上,在其中创建一个TTabSheet页面,在页面上放置一些控件并将其Anchor属性设置为akRight(除了akLeft和akTop)。当程序在分辨率为120 DPI的监视器上运行时,这些控件的右边缘显示为超出PageControl的右边界,因此控件的右侧部分不可见。如果我关闭akRight,那么控件将正确缩放。但我需要这些锚点在运行时正确调整窗体大小。如何解决问题?
PS该错误已在Rad Studio 10.3中修复
答案 0 :(得分:0)
TFont的C ++ Builder帮助说:
PixelsPerInch属性仅影响打印机字体,不应该 被修改。
要修改字体大小,请使用“大小”或“高度”属性。
答案 1 :(得分:0)
在高dpi模式下,拥有无数TPageControl,TEdit,TMemo和其他未对齐控件的应用程序遇到了同样的问题。
我解决此问题的第一种方法是尝试将TForm传递给名为FixFormScaling()
的过程,该过程旨在修复所有有问题的缩放问题。但是由于所包含的控件有许多不同的对齐方式,所以我失败了。我无法在一个简短的过程中合理地处理它。
第二种方法似乎有效:在每个TTabSheet上,我放置一个具有以下属性的TPanel:
Align=alClient
BevelOuter=bvNone
Name=pnlDpiHelper<NameOfTabsheet>
ShowCaption=False
我将所有其他控件(TEdit,TMemo等)移到该TPanel上。高dpi模式的结果是现在一切似乎都可以正确缩放!