我有一个TWinControl
的后代(事实上,现在只是这样),并将其在IDE中注册为组件:
type
TGroupPanel = class(TWinControl);
但是,当我将其他组件拖放到它上面时,它们会附加到表单而不是我的控件上。换句话说,我希望我的自定义控件的行为类似于
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;
那么,我应该怎么做才能让在设计时放置在 TWinControl
上的组件成为该控件的子节点呢?
(我想做的是制作一个特殊的控件来将其他组件分组,以便我可以一起对齐和定位它们。当然,我也可以用普通的面板来做到这一点,但我想用一个不绘制任何东西的轻量级控件来实现,并且我在 TWinControl
中找到了解决方案。)