我正在使用C ++ Builder XE7并遇到一个奇怪的问题。我需要一个大约1500像素的表格高度。问题是对象检查器不允许我指定大于1096像素的值。如果我设置任何更大的值,它将自动设置为1096 ..任何现有或新的表单上都存在问题。我使用的是屏幕分辨率为1920x1080的Windows 7。
答案 0 :(得分:14)
这种行为的原因是,当您没有为表单大小设置约束时,Delphi将通过WM_GETMINMAXINFO
消息在系统级自动获取约束,当delphi通过{设置表单大小时触发该消息{3}}功能。对于最大高度,Delphi使用ptMaxTrackSize.Y成员,在我的Windows 8.1系统(1920x1080分辨率)上恰好是1092.
因此,如果要强制表单高度高于系统桌面高度,则必须使用Constraints.MaxHeight
来覆盖此行为。您可以通过在TCustomForm.WMGetMinMaxInfo
单元中的Vcl.Forms
过程中设置断点来检查这一点。