在启动过程中形成缩小

几个星期前,一个用户报告说我的程序的GUI是缩小的。 今天我开始我的笔记本电脑在多监视器模式,可能会重现这个问题:在Windows启动时,主窗体的大小是325×243像素,而不是648×700。

我没有一行代码来控制窗体的宽度/高度。 位置设置如下: MainForm.Position:= poDefault 。 用户不能调整窗体大小( BorderStyle:= bsSingle )。

什么可能导致这样的怪异? 这是我第二次启动带有附加显示器的笔记本电脑。 第一次一切正常。 它可能与这个多显示器configuration有关吗?

如果编译器不生成与表单大小相关的代码,那么它就像是一些外部程序将代码注入我的程序中以改变其大小。 这是可信的。 有些程序正在这样做,以控制窗口如何分布在多个显示器上。 我已经安装了其中一个,但它不是在Windows启动时运行。

位置设置如下: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设置表单大小