我已经从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;
更新
我找到的一种方法 - 从表单的OnShow方法改变大小
答案 0 :(得分:0)
没有其他答案 - 解决此问题的一种方法是在表格
的OnShow方法中更改表单大小