3

我在表单的右侧放置了三个按钮。按钮的锚属性参数akTopakRight设置为true,其他的 left 设置为false,以便在调整表单大小时按钮始终保持在边框附近的右侧。然后我将窗体的WindowState属性设置为wsMaximized,以便它在启动时覆盖整个屏幕。但是当我启动应用程序时,按钮更靠近中间而不是右侧。但是当我在设计时调整表单大小时,一切似乎都很好。

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

在设计时:

在此处输入图像描述

在此处输入图像描述

在运行时:

在此处输入图像描述

请解释我做错了什么以及如何解决它以使其按预期工作。

4

2 回答 2

4

这看起来像按钮正在使用它们的设计位置创建,然后将表单设置为最大化,然后设置或放置锚属性。

在设计时锚点已经设置好了,这就是为什么你会看到它们随心所欲地移动。为了证明我的理论,使表单更小,运行应用程序并注意项目位于其较小的设计时间位置。

一个简单的解决方法来得到你想要的。将 Window 状态保持在 wsNormal 和 FormShow(在 Create 之后发生)执行以下操作:

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

你会看到你想要的结果。

于 2013-05-03T03:02:10.927 回答
1

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

链接:学习德尔福电视

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

buttoncreate.left := panel.width - (buttoncreate.width + buttonedit.width + buttondelete.width);
buttonedit.left := panel.width - (buttonedit.width + buttondelete.width);
buttondelete.left := panel.width - buttondelete.width;
于 2013-04-29T13:49:04.007 回答