当我在 RAD IDE 中打开表单时,我有一些应用程序(但不是全部)“神奇地”将表单放大了 1.23 倍。例如,947 像素的表单宽度突然跳到 1166 像素。它可疑地接近 120/96 的像素比率(比率为 1.25),但缩放比例始终接近 1.23(根据来自例如表单宽度和高度的较大整数比率来判断)。
我可以查看 .dfm 文件并查看原始数字,而在 IDE 中,这些值已更改(例如,扩展了高度和宽度,调整了控制位置,并增加了字体大小)。
我知道缩放和 dpi 是一个雷区,但我没有(据我所知)更改任何相关设置。
对于受影响和不受影响的项目,表单的Scaled
属性设置为“true”,PixelsPerInch
属性设置为 96。我的开发机器的屏幕分辨率设置为 100%。这是应该避免这些问题的设置。
我搜索了项目和 IDE 配置文件,但徒劳无功,以找出有此问题的项目与没有此问题的项目可能有什么不同。
受影响(和未受影响)的项目都是已经开发多年的项目——直到上周我才观察到这种行为。据我所知(我是唯一的开发人员),我没有进行任何与缩放、dpi 等相关的代码/配置更改。
有谁知道会发生什么?
虽然我使用的是 CBuilder XE3,但我也用 Delphi XE3 标记了这个问题,因为我认为这是一个 RAD Studio 问题。
编辑 1:我还注意到,对于每个修改过的控件,IDE 都会添加以下附加行(即除了修改Top
、Left
、Width
、Height
和Font.Height
):
Margins.Left = 4
Margins.Top = 4
Margins.Right = 4
Margins.Bottom = 4
对于 TImages,它还添加了
ExplicitWidth = <nnn>
ExplicitHeight = <nnn>
编辑 2:奇怪的是,当 IDE 缩放表单时,它不会将表单标记为已修改 - 即,在进行“真正的”更改(例如,重新定位控件)之前,表单似乎未修改。如果在使用修改后的比例保存后再次打开表单,则不会发生进一步的缩放 - 这似乎是一次性效果,但似乎没有任何“未请求缩放完成”标志配置文件:)