首页 文章

在显示之前改变窗口大小的正确方法

提问于
浏览
0

我有项目从XE7移动,在子窗体的OnCreate我改变了窗口的大小,这个窗体有Position:= MainFormCenter .

现在有了柏林,在显示这个子表单后,我有Left = 0和Top = 0 . 如果在OnCreate中未更改窗口大小,则此子窗体正确创建并且它在主窗体上居中 .

如何使用Delphi Berlin在初始化期间更改表单大小而不丢失表单位置设置?

表格位置在此更改为TFormPosition.Designed:

unit FMX.Forms

procedure TCommonCustomForm.Show;
var
  LPosition: TFormPosition;
...
begin
...
          // If you changed the original coordinates or size
          if TBoundChange.Location in FBoundChanges then
          begin
            if LPosition = TFormPosition.Default then
              LPosition := TFormPosition.DefaultSizeOnly
            else if LPosition in [TFormPosition.DefaultPosOnly, TFormPosition.ScreenCenter, TFormPosition.DesktopCenter,
              TFormPosition.MainFormCenter, TFormPosition.OwnerFormCenter] then
              LPosition := TFormPosition.Designed; // Changed here to Default
          end;
...
end;

Update:

我找到的一种方法 - 从表单的OnShow方法改变大小

1 回答

  • 0

    没有其他答案 - 解决这个问题的一种方法是在表单的OnShow方法中更改表单大小

相关问题