我需要让一个控件成为一个控制器(在设计和运行时保持其他控件)类似于TPanel,而不继承自定义面板或类似的控件,我如何告诉我的控件它假设包含东西?
我有一个后代TWinControl(实际上它只是现在)并且我将它注册为IDE中的一个组件:
type
TGroupPanel = class(TWinControl);
Run Code Online (Sandbox Code Playgroud)
但当我删除其他组件时,它们会附加到表单而不是我的控件.换句话说,我希望我的自定义控件的行为类似于TPanel删除它的组件成为它的子组件.
如果我在运行时创建组件并手动将它们分配给我的控件,如下面的代码,那么它的工作原理如下:
TForm1 = class(TForm)
Group: TGroupPanel;
procedure FormCreate(Sender: TObject);
private
Panel: TPanel;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Panel := TPanel.Create(Group);
Panel.Parent := Group;
Panel.Align := alClient;
end;
Run Code Online (Sandbox Code Playgroud)
那么,如何TWinControl在设计时将组件丢弃成为该控制的子项呢?
(我要做的是做一个特殊的控制来组合其他组件,所以我可以对齐并将它们放在一起.当然,我可以用普通面板做到这一点,但我想用轻量级控件做到这一点没有画任何东西,在TWinControl我找到解决方案.)