Delphi 是否可以将窗体宽度设置为10000像素?
当您编译空白表单并尝试用鼠标调整其宽度时,当它的clientwidth接近屏幕分辨率宽度时,它可能会停止 即使在designer中,也不可能设置更宽的形式。(奇怪的是,我从来没有想到会发生这种事)。我也玩过约束,但它也不是解决方案Delphi 是否可以将窗体宽度设置为10000像素?,delphi,delphi-7,Delphi,Delphi 7,当您编译空白表单并尝试用鼠标调整其宽度时,当它的clientwidth接近屏幕分辨率宽度时,它可能会停止 即使在designer中,也不可能设置更宽的形式。(奇怪的是,我从来没有想到会发生这种事)。我也玩过约束,但它也不是解决方案 是否可以将Form.Width设置为10000像素?窗口大小受系统限制-您可以使用函数GetSystemMetrics(SM\u CXMAXTRACK)检索此值-对于我的1280x1024显示器,它是1292 为了使表单更宽,您可以处理提供所需最大大小的消息: pro
是否可以将Form.Width设置为10000像素?窗口大小受系统限制-您可以使用函数
GetSystemMetrics(SM\u CXMAXTRACK)
检索此值-对于我的1280x1024显示器,它是1292
为了使表单更宽,您可以处理提供所需最大大小的消息:
procedure WMGETMINMAXINFO(var M: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
...
procedure TForm1.WMGETMINMAXINFO(var M: TWMGetMinMaxInfo);
begin
M.MinMaxInfo.ptMaxTrackSize.X := 5000;
M.Result := 0;
inherited;
end;
有了这样的消息处理程序,我可以设置Width:=5000代码>在运行时成功
通常情况下,您应该能够使用表单的约束
属性并设置其MaxWidth
来实现这一点,就像在Delphi 7中一样,但是TCustomForm的WM_GETMINMAXINFO
存在缺陷。从消息处理程序调用ConstrainedResize
方法取决于一些fsizeChange
布尔字段,不幸的是,这些字段从未设置为true。已更正此错误,并删除D2007和DXE之间的某个位置的字段。窗口大小受系统限制-您可以使用函数GetSystemMetrics(SM_CXMAXTRACK)
检索此值-对于我的1280x1024显示器,它是1292
为了使表单更宽,您可以处理提供所需最大大小的消息:
procedure WMGETMINMAXINFO(var M: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
...
procedure TForm1.WMGETMINMAXINFO(var M: TWMGetMinMaxInfo);
begin
M.MinMaxInfo.ptMaxTrackSize.X := 5000;
M.Result := 0;
inherited;
end;
有了这样的消息处理程序,我可以设置Width:=5000代码>在运行时成功
通常情况下,您应该能够使用表单的约束
属性并设置其MaxWidth
来实现这一点,就像在Delphi 7中一样,但是TCustomForm的WM_GETMINMAXINFO
存在缺陷。从消息处理程序调用ConstrainedResize
方法取决于一些fsizeChange
布尔字段,不幸的是,这些字段从未设置为true。这一点已得到纠正,字段将在D2007和DXE之间的某个位置被删除。当您尝试执行此操作时会发生什么?@DavidHeffernan当您使用鼠标时,它将停止加宽。如果你试着在设计时输入10000,它将是可能的最高值。我不明白。我知道窗口管理器不允许您调整大于桌面大小的大小。但您可以通过编程方式设置宽度。当你这样做的时候会发生什么?您可以自己回答这个问题。如果您试图以编程方式设置窗体的宽度(Form1.width:=6000),则不会有任何帮助。仍将是1932年(1920x1080)。我在已接受的答案下添加了您评论中的信息,并删除了重复状态。当您尝试这样做时会发生什么?@DavidHeffernan当您使用鼠标时,它会停止。如果你试着在设计时输入10000,它将是可能的最高值。我不明白。我知道窗口管理器不允许您调整大于桌面大小的大小。但您可以通过编程方式设置宽度。当你这样做的时候会发生什么?您可以自己回答这个问题。如果您试图以编程方式设置窗体的宽度(Form1.width:=6000),则不会有任何帮助。仍然是1932年(1920x1080年)。我在接受的答案下添加了您评论中的信息,并删除了重复状态。太棒了!对我也有用。。。感谢/To Edit/No,D7中有一些限制,我也使用了它,但它也不是解决方案。你的回答是正确的。@SertacAkyuz真的吗?我可以设置约束。maxwidth:=10000,但我无论如何都不能将宽度扩展到2000以外。我不知怎么搞砸了,它在D7中无法工作。。。删除我的评论。太棒了!对我也有用。。。感谢/To Edit/No,D7中有一些限制,我也使用了它,但它也不是解决方案。你的回答是正确的。@SertacAkyuz真的吗?我可以设置约束。maxwidth:=10000,但我无论如何都不能将宽度扩展到2000以外。我不知怎么搞砸了,它在D7中无法工作。。。删除了我的评论。