Własny komponent: dostęp do kontrolki child-a w publicznych property komponentu rodzica

0

Witajcie,

tworzę sobie komponent TRichEditEx, który ma w sobie kontrolki, m.in. FRichEdit: TRichEdit, którego property chciałbym publicznie udostępnić w TRichEditEx.

type
  TMRichEditEx = class(TPanel)
  private
    FRichEdit: TRichEdit;
    //inne kontrolki

  protected

  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

  published
    property RichEdit: TRichEdit read FRichEdit;

  end;

O ile dla mojego komponentu TMRichEditEx w BDS2006 w Object Inspektorze pojawia się dodatkowa rozwijalna gałąź kontrolki RichEdit z dostępem do jego property, to w Delphi 2009 jest tylko property, ale bez możliwości rozwinięcia drzewka.

Da się to jakoś zrobić, żebym mógł wyprowadzić w publicznych property mojego komponentu TMRichEditEx publiczne property kontrolki FRichEdit?

0
marogo napisał(a):

[…] to w Delphi 2009 jest tylko property, ale bez możliwości rozwinięcia drzewka.

Z tego co pamiętam, taka sytuacja występuje wtedy, gdy pole z referencją kontrolki-dziecka zawiera nil. Tworzysz tę sub-kontrolkę w konstruktorze głównej klasy komponentu?

0

To chyba jest jakaś ułomność Delphi 2009, bo tak samo nie ma możliwości edycji właściwości sub-komponentu EditLabel w natywnym komponencie TLabeledEdit, ale w BDS2006 (Delphi 10) jest taka możliwość.

0

@marogo: to całkowicie zmienia postać rzeczy. Skoro nawet dla standardowych komponentów nie da się rozwinąć gałązki, to musi to być ułomność (inspektora obiektów?) tej wersji środowiska. Albo bezsensowny ficzer.

1

Już wiem w czym problem. W procedurze "Register" zabrakło rejestracji edytora właściwości sub-komponentu klasy TRichEdit (RegisterPropertyEditor):

uses DesignIntf, DesignEditors;

procedure Register;
begin
  RegisterComponents('Moje', [TMRichEdit]);
  RegisterPropertyEditor(TypeInfo(TRichEdit), TMRichEdit,'RichEdit', TClassProperty); //tego brakowało
end;

Teraz już można rozwinąć gałąź subkomponentu RichEdit.

1 użytkowników online, w tym zalogowanych: 0, gości: 1