我有一个基于 的自定义控件TPanel
,它有一个内部面板,它定义了我的组件的工作区域和一个带有“最小化/恢复”按钮的外部区域,用于隐藏和显示(内部)面板。
如果我在设计时将一个组件放在我的控件上并将其Align
属性设置为alClient
,则使用外部面板的大小并且最小化按钮不再可见。
如何在面板上对齐或放置组件以强制它们(保持)在内面板区域内?
我有一个基于 的自定义控件TPanel
,它有一个内部面板,它定义了我的组件的工作区域和一个带有“最小化/恢复”按钮的外部区域,用于隐藏和显示(内部)面板。
如果我在设计时将一个组件放在我的控件上并将其Align
属性设置为alClient
,则使用外部面板的大小并且最小化按钮不再可见。
如何在面板上对齐或放置组件以强制它们(保持)在内面板区域内?
将按钮放在自己的面板上,该面板不会接受其他控件并将其保留在前面,但缺点是可以覆盖其他控件。
procedure THidePanel.AdjustClientRect(var Rect: TRect);
begin
inherited;
FPanel.BringToFront;
end;
constructor THidePanel.create(AOwner: TComponent);
begin
inherited;
FPanel := TPanel.Create(self);
FPanel.Align := alright;
FPanel.Parent := self;
FPanel.BevelOuter := bvNone;
FPanel.Width := 30;
FButton:=TSpeedButton.Create(self);
FButton.Parent := FPanel;
FPanel.ControlStyle := FPanel.ControlStyle - [csAcceptsControls];
end;