Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 是否可以将窗体宽度设置为10000像素?_Delphi_Delphi 7 - Fatal编程技术网

Delphi 是否可以将窗体宽度设置为10000像素?

Delphi 是否可以将窗体宽度设置为10000像素?,delphi,delphi-7,Delphi,Delphi 7,当您编译空白表单并尝试用鼠标调整其宽度时,当它的clientwidth接近屏幕分辨率宽度时,它可能会停止 即使在designer中,也不可能设置更宽的形式。(奇怪的是,我从来没有想到会发生这种事)。我也玩过约束,但它也不是解决方案 是否可以将Form.Width设置为10000像素?窗口大小受系统限制-您可以使用函数GetSystemMetrics(SM\u CXMAXTRACK)检索此值-对于我的1280x1024显示器,它是1292 为了使表单更宽,您可以处理提供所需最大大小的消息: pro

当您编译空白表单并尝试用鼠标调整其宽度时,当它的clientwidth接近屏幕分辨率宽度时,它可能会停止

即使在designer中,也不可能设置更宽的形式。(奇怪的是,我从来没有想到会发生这种事)。我也玩过约束,但它也不是解决方案


是否可以将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中无法工作。。。删除了我的评论。