He escrito un control personalizado, que tiene varios subpaneles. Quiero que estos subpaneles acepten cualquier control adicional que se les deje caer en el momento del diseño.¿Cómo creo un control personalizado con un subpanel que acepta otros controles en designtime?
Lamentablemente, cualquier control que se caiga en el momento del diseño termina en mi control personalizado, no en los paneles. Esto muestra, en particular, si trato de soltar una etiqueta: se muestran los puntos azules de la etiqueta, pero su leyenda no aparece y, si anulo la selección de la etiqueta, ya no estará visible.
código simplificado (solo un panel secundario):
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;
¿qué estoy haciendo mal aquí?
(Sólo en caso de que importe: Estoy utilizando Delphi 2007.)
[editar]
ahora lo he resuelto de manera diferente. El componente ya no contiene paneles sino que se refiere a paneles externos. Esto lo hace mucho más flexible, pero a la baja ya no es tan intuitivo de usar.
Todavía me gustaría saber cómo lograr lo que describí originalmente. ¿Hay algún componente de código abierto en alguna parte que lo haga así que puedo estudiar el código fuente?