我有项目从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 回答
没有其他答案 - 解决这个问题的一种方法是在表单的OnShow方法中更改表单大小