Вопрос собственно говоря в следующем: есть компонент - потомок TPanel, включающий в себя другой компонент, например, тоже TPanel. Как из первого получить доступ к свойствам второго?
У внедренного компонента имеется свойство Caption. После размещения нового компонента на форме в инспекторе объектов (в Design-time) я вижу и могу изменить значение свойства Caption, но при компиляции (в Runtime) это значение сбрасыется на изначальное - почему?
Код ниже:
Код:
unit PanInPan;
interface
uses
SysUtils, Classes, Controls, ExtCtrls, Graphics, QStdCtrls;
type
TPanInPan = class(TPanel)
private
FTitle: TPanel;
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
{ Published declarations }
property Title: TPanel read FTitle write FTitle;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('My', [TPanInPan]);
end;
// Создание компонента
constructor TPanInPan.Create(AOwner: TComponent);
begin
inherited create(AOwner);
width:=500;
Height:=300;
FTitle:=TPanel.Create(Self);
with FTitle do
begin
Width:= 100;
Align:= alRight;
BevelOuter:= bvNone;
TabOrder:= 0;
Color:=clRed;
Name:='SubTitle';
Caption:=Name;
end;
FTitle.Parent:=Self;
end;
// Уничтожение компонента
destructor TPanInPan.Destroy;
begin
FTitle.Free;
inherited;
end;
end.