如何在Delphi中设置窗体的宽度和高度

8

我该如何在Delphi 7中设置表单的宽度和高度?该表单上包含不同类型的控件。我需要将主表单大小设置为127x263。这应该在按钮点击时以编程方式更改。


3
请确保您始终包括通用的 Delphi 标签,因为并不是很多人会检查 Delphi-7 标签。我这次已经添加了它,但以后的问题请记住这一点——这样可以获得更好的答案。 - David Heffernan
好的,我会在以后这样做,谢谢。 - Nelson T Joseph
1个回答

16

像这样:

MainForm.Width := 127;
MainForm.Height := 263;

或者你想将客户端区域设置为这些尺寸:

MainForm.ClientWidth := 127;
MainForm.ClientHeight := 263;

当然,通常你会在设计时在对象检查器中设置这些属性,然后它们会被写入你的窗体的 .dfm 文件。

如果你想要在按钮点击时发生这样的改变,请添加一个按钮点击处理程序,看起来像这样:

procedure TMainForm.Button1Click(Sender: TObject);
begin
  Width := 127;
  Height := 263;
end;
在这个最后的例子中,你不需要指定 MainForm 对象实例,因为事件处理程序是 TMainForm 类的成员,所以 Self 是隐含的。
如果你想遵循 Ulrich Gerhardt 的建议(见评论),并使用 SetBounds,那么你应该编写:
SetBounds(Left, Top, 127, 263);

最后,如果你的表单中使用了 Scaled = True,那么你需要解决字体缩放的问题。这样硬编码的像素尺寸就不能适用于字体缩放设置与你的机器不同的机器。


15
使用SetBounds来调整大小,而不是分别更改宽度和高度,可以减少更新次数。 - Uli Gerhardt
如果将 AutoSize 设置为 true,则通过编程方式设置 ClientHeightClientWidth 不会影响窗体。 - user30478

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