我的表单右侧有三个按钮。按钮'锚属性参数 akTop , akRight 设置为 true ,其他属性设置为 false ,以便按钮始终在调整表单大小时,保留在靠近边界的右侧。然后我将表单的 WindowState 属性设置为 wsMaximized ,以便在启动时运行时覆盖整个屏幕。但是当我启动应用程序时,按钮更接近中间而不是右侧。但是当我在设计时调整表格时,一切似乎都很好。
以下是一些快照,向您展示我的意思:
在设计时:
在运行时:
请解释一下我做错了什么,以及如何解决这个问题,以便按预期工作。
答案 0 :(得分:4)
这看起来按钮是按照设计位置创建的,然后将窗体设置为最大化,然后设置或放置锚属性。
在设计时,锚已经设定好,这就是为什么你看到它们随意移动的原因。为了证明我的理论使表格更小,运行应用程序并注意到项目在较小的设计时间位置。
轻松修复以获得所需内容。保持窗口状态为wsNormal和FormShow(在Create之后发生)执行此操作:
procedure TForm1.FormShow(Sender: TObject);
begin
self.WindowState := wsMaximized;
end;
您将看到所需的结果。
答案 1 :(得分: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;