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