2
我有一个基于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;
如果只需要alclient,只需设置你的Hidepanel的填充。 – bummi 2013-04-10 11:29:33