🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346630

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

#346630
From: Marek
Date: Fri, 01 Jun 2018 11:07
73 lines
3251 bytes
W dniu 01.06.2018 o 10:09, Krzysztof Szyszka pisze:
>> Użytkownik "Marek"  napisał w wiadomości grup dyskusyjnych:peplqc$2gv$1@node2.news.atman.pl...
>> 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
>>      procedure WMSize(var Msg: TMessage); message WM_SIZE;
>>
>>    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?
> 
> Pokaż jak tworzysz tego RichEdita. Czy ustawiasz dla niego SetSubComponent?
> http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Classes.TComponent.SetSubComponent
> 

Ustawiam. Tak wygląda konstruktor:

constructor TMRichEdit.Create(AOwner: TComponent);
Begin
   inherited Create(AOwner);

   Width := 250;
   Height := 200;

   BevelOuter := bvNone;
   BorderStyle := bsSingle;
   Ctl3D := false;
   ParentCtl3D := false;

   FRichEdit := TRichEdit.Create(Self);
   FRichEdit.Name := 'RichEdit';
   FRichEdit.Left := 0;
   FRichEdit.Top := 0;
   FRichEdit.Width := 100;
   FRichEdit.Height := 100;
   FRichEdit.BorderStyle := bsNone;
   FRichEdit.ParentFont := true;
   FRichEdit.Parent := Self;

   FRichEdit.SetSubComponent(true);

   FRichEdit.Align := alTop;
   FRichEdit.Height := Height- 40;
   if not (csDesigning in ComponentState) then
     FRichEdit.Lines.Text :='';
End;

Przypuszczam, że to jakaś ułomność Object Inspector-a w Delphi 2009, bo w Delphi 2006 jest OK.

-- 
Pzdr.
Marek
Technical Details
Message-ID: <per9da$gq7$1@node2.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <peplqc$2gv$1@node2.news.atman.pl> <peqv0a$6nl$1@node1.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Marek <trele@fele.pl>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Własny komponent: dostęp do
 kontrolki child-a w publicznych property komponentu rodzica
Date: Fri, 1 Jun 2018 13:07:22 +0200
Organization: ATMAN - ATM S.A.
Lines: 73
Message-ID: <per9da$gq7$1@node2.news.atman.pl>
References: <peplqc$2gv$1@node2.news.atman.pl> <peqv0a$6nl$1@node1.news.atman.pl>
NNTP-Posting-Host: host8.router8.tygrys.net
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1527851242 17223 213.108.119.8 (1 Jun 2018 11:07:22 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Fri, 1 Jun 2018 11:07:22 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0
In-Reply-To: <peqv0a$6nl$1@node1.news.atman.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit