Delphi中应用程序最大化时组件的锚属性

时间:2013-04-25 06:47:46

标签: delphi delphi-7

我的表单右侧有三个按钮。按钮'锚属性参数 akTop akRight 设置为 true ,其他属性设置为 false ,以便按钮始终在调整表单大小时,保留在靠近边界的右侧。然后我将表单的 WindowState 属性设置为 wsMaximized ,以便在启动时运行时覆盖整个屏幕。但是当我启动应用程序时,按钮更接近中间而不是右侧。但是当我在设计时调整表格时,一切似乎都很好。

以下是一些快照,向您展示我的意思:

在设计时:

enter image description here

enter image description here

在运行时:

enter image description here

请解释一下我做错了什么,以及如何解决这个问题,以便按预期工作。

2 个答案:

答案 0 :(得分:4)

这看起来按钮是按照设计位置创建的,然后将窗体设置为最大化,然后设置或放置锚属性。

在设计时,锚已经设定好,这就是为什么你看到它们随意移动的原因。为了证明我的理论使表格更小,运行应用程序并注意到项目在较小的设计时间位置。

轻松修复以获得所需内容。保持窗口状态为wsNormal和FormShow(在Create之后发生)执行此操作:

procedure TForm1.FormShow(Sender: TObject);
begin
  self.WindowState := wsMaximized;
end;

您将看到所需的结果。

答案 1 :(得分:1)

我在其中一个教程中看到了你的答案。但真的不记得是哪一个。您可以观看所有视频,甚至可以了解更多内容。它不会浪费时间。

链接:Learn Delphi TV

如果你懒得观看视频,你也可以试试下面的内容。将此代码放入表单调整大小:

buttoncreate.left := panel.width - (buttoncreate.width + buttonedit.width + buttondelete.width);
buttonedit.left := panel.width - (buttonedit.width + buttondelete.width);
buttondelete.left := panel.width - buttondelete.width;