delphi 保持确定/取消按钮居中自动调整大小?

7kjnsjlb  于 2023-03-22  发布在  其他
关注(0)|答案(1)|浏览(156)

C++ Builder内置了什么方法来在调整窗体大小时使两个按钮保持居中?我使用TRelativePanel很接近,但我能做的最好的事情是将其中一个按钮居中,另一个按钮在该按钮的左侧或右侧。如果我有3个按钮,该方法将工作,但我确信一些如此常见的东西他们必须有它内置的。我如何在C++ Builder世界中设置它?如果我必须使用OnResize()事件,我知道如何做到这一点,但在我看来,他们应该有一些内置的东西。
虽然我很惊讶他们没有一个窗体属性的最小/最大大小设置,所以也许我期望太多了。
TIA!

xvw2m8pv

xvw2m8pv1#

如果您从按钮的锚定设置中删除akLeft和akRight,它们将保持在其相对位置(即,如果它们距离左边框10%,则当您调整窗体大小时,它们将保持距离左边框10%)。
但这也意味着,如果您将两个按钮放置在窗体的中心(左侧的按钮位于中心的左侧,右侧的按钮位于中心的右侧),那么当您扩展窗体时,它们将分开,而当您缩小窗体时,它们将重叠。
无论如何调整窗体大小,将两个按钮都保持在窗体中心的唯一方法是在FormResize事件中放置一些代码,通过计算来调整它们的位置。
编辑:根据Tom Brunberg的评论,你也可以有一个没有左/右锚点的TPanel,但有一个底部锚点,面板的大小正好是两个按钮组合的大小,它们之间的任何间距,放置在表单的底部,两个按钮在这个面板内。如果你从这个面板中删除任何Bevel:

P.BevelKind:=TBevelKind.bkNone;
    P.BevelInner:=TBevelCut.bvNone; 
    P.BevelEdges:=[];
    P.Anchors:=[akBottom];

那么它对用户是不可见的,它将沿着底部边缘浮动,但保持居中。
如果你所说的“窗体属性的最小/最大大小设置”是指一种将窗体的大小限制在一定范围内的方法,那么看看窗体的Constraints属性。

相关问题