Como crio um controle personalizado com um subpainel que aceita outros controles no momento do design? [duplicado
Esta pergunta já tem uma resposta aqui:
Deixe que os componentes que caem no meu controle no IDE se tornem filhos do meu controle 1 respostaEscrevi um controle personalizado, que possui vários subpainéis. Quero que esses subpainéis aceitem quaisquer controles adicionais lançados sobre eles em tempo de desig
Infelizmente, qualquer controle que seja descartado no tempo de design acaba no meu controle personalizado, não nos painéis. Isso é exibido especialmente se eu tentar soltar um rótulo: os pontos azuis do rótulo são mostrados, mas sua legenda não é e, se eu desmarcar o rótulo, ele não estará mais visíve
código simplificado (apenas um sub-painel):
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;
O que eu estou fazendo errado aqui
(Apenas no caso de ser importante: estou usando o Delphi 2007.)
[editar
Eu resolvi isso de forma diferente. O componente não contém mais painéis, mas refere-se a painéis externos. Isso o torna realmente muito mais flexível, mas o lado negativo não é mais tão intuitivo de usa
Ainda gostaria de saber como realizar o que descrevi originalmente. Não existe um componente de código aberto em algum lugar que faça isso, para que eu possa estudar o código-font