Thread View: pl.comp.lang.delphi
4 messages
4 total messages
Started by Marek
Thu, 31 May 2018 20:26
Własny komponent: dostęp do kontrolki child-a w publicznych property komponentu rodzica
Author: Marek
Date: Thu, 31 May 2018 20:26
Date: Thu, 31 May 2018 20:26
33 lines
1855 bytes
1855 bytes
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?
--
Pzdr.
Marek
Re: Własny komponent: dostęp do kontrolki child-a w publicznych property komponentu rodzica
Author: Krzysztof Szyszka
Date: Fri, 01 Jun 2018 08:09
Date: Fri, 01 Jun 2018 08:09
40 lines
2462 bytes
2462 bytes
> 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 -- pozdrowienia Krzysztof Szyszka, X-Files Software Developer of X-DBGrid Component Embarcadero Technology Partner http://www.x-files.pl/
Re: Własny komponent: dostęp do kontrolki child-a w publicznych property komponentu rodzica
Author: Marek
Date: Fri, 01 Jun 2018 11:07
Date: Fri, 01 Jun 2018 11:07
73 lines
3251 bytes
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
Re: Własny komponent: dostęp do kontrolki child-a w publicznych property komponentu rodzica
Author: Marek
Date: Fri, 01 Jun 2018 12:12
Date: Fri, 01 Jun 2018 12:12
48 lines
2727 bytes
2727 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
>
Już wiem, w procedurze "Register" zabrakło rejestracji edytora właściwości sub-komponentu
klasy TRichEdit (RegisterPropertyEditor):
procedure Register;
begin
RegisterComponents('Moje', [TMRichEdit]);
RegisterPropertyEditor(TypeInfo(TRichEdit), TMRichEdit,'RichEdit', TClassProperty); //tego brakowało
end;
--
Pzdr.
Marek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads