2

几周前,一位用户报告说我的程序的 GUI 缩小了。今天我以多显示器模式启动我的笔记本电脑,并且可以重现该问题:在 Windows 启动时,主窗体的大小是 325x243 像素而不是 648x700。

我没有控制表单宽度/高度的单行代码。位置设置如下:MainForm.Position:= poDefault. 用户无法调整表单 ( BorderStyle:= bsSingle) 的大小。

是什么导致了这种奇怪的现象?这是我第二次启动带有附加显示器的笔记本电脑。第一次一切正常。它可能与这种多显示器配置有关吗?

如果编译器没有生成与表单大小相关的代码,那么它就像一些外部程序将代码注入我的程序以更改其大小。这是有道理的。有些程序这样做是为了控制窗口在多个监视器上的分布方式。我安装了其中一个,但它没有在 Windows 启动时运行。

4

1 回答 1

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设置固定的表单大小

于 2013-07-26T16:07:49.470 回答