Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > События "дочерних классов"в инспекторе объектов


Автор: SeregaAltmer 26.9.2010, 07:57
Необходимо сделать видимым в инспекторе объектов событие объекта принадлежащего компоненту. Свойства отображаются свободно, а вот с событиями чего-то не догоняю, подскажите что не так. Пример:
Код

..............................
type
  TExClass = class(TPersistent)
  private
    fExProp: string;
    fOnExEvent: TNotifyEvent;
  published
    property ExProp: string read fExProp write fExProp;      //Отображается в инспекторе
    property OnExEvent: TNotifyEvent read fOnExEvent write fOnExEvent;  //Не отображается в инспекторе, а нужно что-бы отображался
  end;

  TExComponet = class(TComponent)
  private
    fExClass: TExClass;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property ExClass: TExClass read fExClass write fExClass;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Ex', [TExComponet]);
end;

constructor TExComponet.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ExClass := TExClass.Create;
end;

destructor TExComponet.Destroy;
begin
  ExClass.Free;
  inherited Destroy;
end;


Автор: SeregaAltmer 26.9.2010, 11:37
С персистенсом не срослось к сожалению, так и пришлось TComponent брать.

Следующие изменения решают проблему:
Код

.....................................
type 
 TExClass = class(TComponent)
.....................................

constructor TExComponet.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ExClass := TExClass.Create(Self);
  ExClass.SetSubComponent(True);
end;
....................................


Если у кого есть другие решения буду рад.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)