Wie erstelle ich ein benutzerdefiniertes Steuerelement mit einem Unterfenster, das zur Entwurfszeit andere Steuerelemente akzeptiert? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Lassen Sie Komponenten, die auf meinem Steuerelement in der IDE abgelegt wurden, untergeordnete Elemente meines Steuerelements werden. 1 Antwort

Ich habe ein benutzerdefiniertes Steuerelement geschrieben, das mehrere Unterfenster enthält. Ich möchte, dass diese Unterfenster zusätzliche Steuerelemente akzeptieren, die zur Entwurfszeit darauf abgelegt wurden.

Leider landet jedes Steuerelement, das zur Entwurfszeit gelöscht wird, auf meinem benutzerdefinierten Steuerelement, nicht auf den Bedienfeldern. Dies zeigt sich insbesondere, wenn ich versuche, ein Etikett abzulegen: Die blauen Punkte des Etiketts werden angezeigt, die Beschriftung jedoch nicht. Wenn ich die Auswahl des Etiketts aufhebe, ist es überhaupt nicht mehr sichtbar.

vereinfachter Code (nur ein Unterfenster):

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;

Was mache ich hier falsch?

(Nur für den Fall, dass es darauf ankommt: Ich verwende Delphi 2007.)

[bearbeiten

Ich habe es jetzt anders gelöst. Die Komponente enthält keine Bedienfelder mehr, verweist jedoch auf externe Bedienfelder. Dies macht es tatsächlich viel flexibler, aber auf der anderen Seite ist es nicht mehr so intuitiv zu bedienen.

Ich würde immer noch gerne wissen, wie ich das erreichen kann, was ich ursprünglich beschrieben habe. Gibt es nicht irgendwo eine Open Source-Komponente, die das macht, damit ich den Quellcode studieren kann?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage