我在窗体上为不同的显示器DPI设置自动缩放控件时遇到了问题。Rad Studio 10.2 Tokio。"Enable high-dpi“打开。我在设计时将窗体的PixelsPerInch设置为96。我在表单上放置了TPageControl,在其中创建了一个TTabSheet页面,在页面上放置了一些控件,并将它们的锚属性设置为akRight (除了akLeft和akTop之外)。当程序在分辨率为120DPI的显示器上运行时,这些控件的右边缘显示为超出PageControl的右边界,因此控件的右部分不可见。如果我关闭了akRight,那么控件就会被正确缩放。但我需要这些锚点在运行时正确地调整窗体的大小。如何解决这个问题?
PS该错误已在Rad Studio 10.3中修复
发布于 2018-01-23 13:05:04
针对TFont的C++生成器帮助称:
PixelsPerInch属性仅影响打印机字体,不应修改。
若要修改字体的大小,请使用size或Height属性。
发布于 2018-11-01 21:04:55
我遇到了同样的问题,一个应用程序拥有无数的TPageControl,TEdit,TMemo和其他在高dpi模式下未对齐的控件。
我解决这个问题的第一种方法是尝试将TForm传递给一个名为FixFormScaling()的过程,我打算在该过程中修复所有有错误的伸缩内容。但我失败了很多,因为包含的控件有许多不同的对齐,我不能在一个简短的过程中合理地处理它们。
第二种方法似乎是可行的:在每个TTabSheet上,我放置一个具有以下属性的TPanel:
Align=alClient
BevelOuter=bvNone
Name=pnlDpiHelper<NameOfTabsheet>
ShowCaption=False我正在移动所有其他控件(TEdit、TMemo等)到那个TPanel上。在高dpi模式下的结果是现在一切似乎都被正确缩放了!
https://stackoverflow.com/questions/48370423
复制相似问题