如何将表单高度设置为大于1096个像素?

10

我正在使用C++ Builder XE7并且遇到了一个奇怪的问题。 我需要一个表单高度约为1500像素。 问题是对象检查器不允许我指定大于1096像素的值。 如果我设置任何更大的值,它会自动设置为1096。 这个问题存在于任何现有或新的表单上。我正在使用分辨率为1920x1080的Windows 7。

我建议您尝试在代码中手动设置表单高度,而不是使用对象检查器。 您可以通过在代码中使用Height属性来设置表单高度,例如:

``` Form1->Height = 1500; ```

这应该解决您的问题。


3
我可以重现这个问题。如果你将Constraints.MaxHeight设置为更高的值,就可以使高度更高... - whosrdaddy
谢谢!问题解决了。 - Tracer
1个回答

19
这种行为的原因是,当您不为表单大小设置约束时,Delphi会通过WM_GETMINMAXINFO消息自动获取系统级别的约束。当Delphi通过SetWindowPos函数设置表单大小时,该消息将被触发。对于最大高度,Delphi使用ptMaxTrackSize.Y成员,在我的Windows 8.1系统上为1092(分辨率为1920x1080)。
因此,如果您想强制表单高度超过系统桌面高度,则必须使用Constraints.MaxHeight来覆盖此行为。您可以在Vcl.Forms单元中的TCustomForm.WMGetMinMaxInfo过程中设置断点以进行验证。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接