J'ai écrit un contrôle personnalisé, qui a plusieurs sous-panneaux. Je veux que ces sous-panneaux acceptent tous les contrôles supplémentaires déposés sur eux lors de la conception.Comment créer un contrôle personnalisé avec un sous-panneau qui accepte d'autres contrôles au moment du design?
Malheureusement, tout contrôle qui est abandonné au moment du design finit sur mon contrôle personnalisé, pas sur les panneaux. Cela montre en particulier si j'essaie d'abandonner une étiquette: Les points bleus de l'étiquette sont montrés, mais ce n'est pas la légende et si je désélectionne l'étiquette, elle n'est plus visible du tout.
code simplifié (un seul panneau secondaire):
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;
ce que je fais mal ici?
(au cas où il importe: J'utilise Delphi 2007)
[modifier]
Je suis maintenant résolu différemment. Le composant ne contient plus de panneaux mais fait référence à des panneaux externes. Cela le rend beaucoup plus flexible, mais à la baisse, il n'est plus aussi intuitif à utiliser.
Je voudrais toujours savoir comment accomplir ce que j'ai décrit à l'origine. N'y a-t-il pas quelque part un composant open source qui fait cela, donc je peux étudier le code source?