【问题标题】:Preferred way to keep control centered on resize将控制集中在调整大小上的首选方式
【发布时间】:2008-11-24 09:38:31
【问题描述】:

当父级更改宽度或高度时,您首选的保持控件居中于其父级的方式是什么?

【问题讨论】:

    标签: delphi vcl


    【解决方案1】:

    如果“居中”的意思是“它已经在中间,并且您想保留它而不调整它的大小”,则删除所有锚点。如果应该调整大小,gabr 的解决方案是:)

    【讨论】:

      【解决方案2】:

      将控件的 Anchors 属性设置为 [akLeft, akTop, akRight, akBottom]。

      【讨论】:

      • 确实是这样。
      • 这假定子控件允许调整大小。
      • 是的。另一个答案描述了不调整大小的方法。
      【解决方案3】:

      如果您的意思是“更新中,请稍候...”类型的东西,我在 Form 的 OnResize 事件中手动移动它。这使我可以在设计期间保持面板不碍事,并正常隐藏,但我可以在需要时使其可见。

      procedure TMyForm.FormResize(Sender: TObject);
      var
        nNewTop : Integer;
      begin
        inherited;
        pnlRegenerating.Left := (ClientWidth - pnlRegenerating.Width) div 2;
        nNewTop := (ClientHeight div 5) {* 4};
        if (nNewTop + pnlRegenerating.Height) > ClientHeight then
          nNewTop := ClientHeight - pnlRegenerating.Height - 4;
        pnlRegenerating.Top := nNewTop;
      end;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-14
        • 1970-01-01
        相关资源
        最近更新 更多