Как мне создать собственный элемент управления с дополнительной панелью, которая принимает другие элементы управления во время разработки? [Дубликат]
На этот вопрос уже есть ответ:
Элементы, добавленные на мой элемент управления в среде IDE, становятся дочерними элементами моего элемента управления 1 ответЯ написал собственный элемент управления, который имеет несколько вспомогательных панелей. Я хочу, чтобы эти вспомогательные панели принимали любые дополнительные элементы управления, добавленные к ним во время разработки.
К сожалению, любой элемент управления, который отбрасывается во время разработки, оказывается на моем пользовательском элементе управления, а не на панелях. В частности, это проявляется, если я пытаюсь удалить метку: отображаются синие точки метки, но заголовок отсутствует, а если я отменяю метку, она больше не отображается.
упрощенный код (только одна подпанель):
type
TMyContainer = class(TPanel)
p_SubPanel: TPanel;
public
constructor Create(_Owner: TComponent); override;
end;
constructor TMyContainer.Create(_Owner: TComponent);
begin
inherited;
p_SubPanel := TPanel.Create(Self);
p_SubPanel.Parent := Self;
p_SubPanel.Align := alClient;
end;
Что я здесь не так делаю?
(На всякий случай, если это имеет значение: я использую Delphi 2007.)
[редактировать
Я решил это по-другому. Компонент больше не содержит панелей, а относится к внешним панелям. Это делает его на самом деле гораздо более гибким, но с другой стороны он более не интуитивно понятен в использовании.
Я все еще хотел бы знать, как выполнить то, что я описал изначально. Нет ли где-нибудь компонента с открытым исходным кодом, который бы делал это, чтобы я мог изучить исходный код?