From 835e3c2a627695898c4c9225f41de5871ded85dd Mon Sep 17 00:00:00 2001 From: Martin Date: Sat, 6 Jul 2024 13:06:59 +0200 Subject: [PATCH] DockedFormEditor: Prevent TForm from being aligned to parent (resize-container). Issue #39531 --- .../dockedformeditor/source/dockedgrip.pas | 20 ++++++++++++++++--- .../source/dockedresizecontrol.pas | 6 +++--- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/components/dockedformeditor/source/dockedgrip.pas b/components/dockedformeditor/source/dockedgrip.pas index a6cda7c6b7..a042da8875 100644 --- a/components/dockedformeditor/source/dockedgrip.pas +++ b/components/dockedformeditor/source/dockedgrip.pas @@ -180,6 +180,13 @@ type property PopupMenu: TPopupMenu read GetPopupMenu write SetPopupMenu; end; + { TResizeFormContainer } + + TResizeFormContainer = class(TWinControl) + protected + procedure AlignControls(AControl: TControl; var RemainingClientRect: TRect); override; + end; + { TResizeContainer } TResizeContainer = class(TComponent) @@ -188,7 +195,7 @@ type FBoundsRect: TRect; FFakeMenu: TCustomControl; FFormClient: TWinControl; - FFormContainer: TWinControl; + FFormContainer: TResizeFormContainer; FParent: TWinControl; FResizeBars: TResizeBars; FResizeGrips: TResizeGrips; @@ -203,7 +210,7 @@ type property BoundsRect: TRect read FBoundsRect; property FakeMenu: TCustomControl read FFakeMenu; property FormClient: TWinControl read FFormClient; - property FormContainer: TWinControl read FFormContainer; + property FormContainer: TResizeFormContainer read FFormContainer; property Parent: TWinControl read FParent; property ResizeBars: TResizeBars read FResizeBars; property ResizeGrips: TResizeGrips read FResizeGrips; @@ -578,6 +585,13 @@ begin FBar[7].SetBounds(ARect.Left, ARect.Top + BarSize, BarSize, LMiddleTop - ARect.Top - BarSize); end; +{ TResizeFormContainer } + +procedure TResizeFormContainer.AlignControls(AControl: TControl; var RemainingClientRect: TRect); +begin + // Do not align the form +end; + { TResizeContainer } constructor TResizeContainer.Create(AWinControl: TWinControl); @@ -599,7 +613,7 @@ begin FFormClient.ControlStyle:= FFormClient.ControlStyle + [csOpaque]; FFormClient.Parent := Parent; - FFormContainer := TWinControl.Create(FFormClient); + FFormContainer := TResizeFormContainer.Create(FFormClient); FFormContainer.Parent := FFormClient; FAnchorContainer := TWinControl.Create(Parent); diff --git a/components/dockedformeditor/source/dockedresizecontrol.pas b/components/dockedformeditor/source/dockedresizecontrol.pas index b8a033f843..d405ba899b 100644 --- a/components/dockedformeditor/source/dockedresizecontrol.pas +++ b/components/dockedformeditor/source/dockedresizecontrol.pas @@ -60,7 +60,7 @@ type function GetAnchorContainer: TWinControl; function GetFakeMenu: TCustomControl; function GetFormClient: TWinControl; - function GetFormContainer: TWinControl; + function GetFormContainer: TResizeFormContainer; function GetSizerGripSize: Integer; procedure RefreshAnchorDesigner; procedure ResizeBarPaint(Sender: TObject); @@ -82,7 +82,7 @@ type property DesignForm: TDesignForm read FDesignForm write SetDesignForm; property FakeMenu: TCustomControl read GetFakeMenu; property FormClient: TWinControl read GetFormClient; - property FormContainer: TWinControl read GetFormContainer; + property FormContainer: TResizeFormContainer read GetFormContainer; property NewFormSize: TPoint read FNewFormSize; property OnResized: TNotifyEvent read FOnResized write FOnResized; property Resizing: Boolean read FResizing; @@ -275,7 +275,7 @@ begin Result := FResizeContainer.FormClient; end; -function TResizeControl.GetFormContainer: TWinControl; +function TResizeControl.GetFormContainer: TResizeFormContainer; begin Result := FResizeContainer.FormContainer; end;