几周前,一位用户报告我的程序的GUI缩小了。 今天我开始使用多显示器模式的笔记本电脑,可以重现这个问题:在Windows启动时,主窗体的大小为325x243像素,而不是648x700。
我没有一行代码来控制表单的宽度/高度。位置设置如下:MainForm.Position:= poDefault
。用户无法调整表单的大小(BorderStyle:= bsSingle
)。
什么可能导致这种奇怪? 这是我第二次使用附加的显示器启动笔记本电脑。一切都好的第一次。它可能与这种多监视器配置有关吗?
如果编译器没有生成与表单大小相关的代码,那么就像一些外部程序将代码注入到我的程序中以改变其大小。这似乎是合理的。有些程序正在这样做,以控制窗口如何分布在多个监视器上。我安装了其中一个,但它没有在Windows启动时运行。
答案 0 :(得分:3)
位置设置如下:MainForm.Position:= poDefault
这就是答案。
http://docwiki.embarcadero.com/Libraries/XE4/en/Vcl.Forms.TForm.Position
表单显示在屏幕上的某个位置,高度和宽度由操作系统确定。
然而,还有其他选项,如
poDefaultPosOnly :表单会显示您在设计时创建的大小,但操作系统会在屏幕上选择其位置
poScreenCenter :表单仍然是您在设计时留下的尺寸,但位于屏幕的中央。
还有很多其他人。
此外,您可以避免修复问题并添加变通方法:只需使用http://docwiki.embarcadero.com/Libraries/XE4/en/Vcl.Forms.TForm.Constraints
设置表单大小