Krótko: Piszę komponent. Chciałbym, żeby w object inspectorze były takie "rozwijalne" właściwości (tak jak np. Font, Anchors itp.). Próbowałem stworzyć rekord, fcos: TRekord i property cos: TRekord read fcos write fcos, ale to jest źle :/ Hilfe!
W większości przypadków rozwijalne włąsciwości są zadeklarowane jako klasa lub jako "set of" np.
TBorderIcon = (biSystemMenu, biMinimize, biMaximize, biHelp);
TBorderIcons = set of TBorderIcon;
(przy takiej deklaracji każdy element zbioru będzie miał w Object Inspectorze wartośc True lub False)
Polecam przeglądnięcie kodu źródłowego komponentów z tego typu własciwościami - jeżeli masz Delphi w wersji Professional albo Enterprise - masz też kody źródłowe wiekszości komponentow VCL.
Ajć, chyba źle sprecyzowałem swoje pytanie... Chodzi mi nie o coś jak "combobox" tylko o takie rozwijanie, jak właściwości +[plusik] mają... :P Już teraz wiadomo? Heh, przepraszam, ale jakoś ciężko mi się wysłowić :/
Tego typu własności są pochodnymi TPersistent... To wygląda jakoś tak:
type
TLinkTextAttributes = class(TPersistent)
private
FColor: TColor;
FStyle: TFontStyles;
FOnChange: TNotifyEvent;
procedure SetColor(Value: TColor);
procedure SetStyle(Value: TFontStyles);
procedure DoChange;
public
procedure Assign(Source: TPersistent); override;
published
property Color: TColor read FColor write SetColor;
property Style: TFontStyles read FStyle write SetStyle;
property OnChange: TNotifyEvent read FOnChange write FOnChange;
end;
...
property FontActive: TLinkTextAttributes read FFontActive write SetFontActive;
property FontUnactive: TLinkTextAttributes read FFontUnactive write SetFontUnactive;
...
Odpowiednio wszystko oprogramuj, lub pisz o więcej kodu, jak nie jesteś w stanie z tego wyciągnąć czegoś dla siebie...
Hmm... A do czego są Artykuły?? W artykule pana Adama Boducha na temat pisania własnych komponentów wszystkie te bajerki są opisane...
Kurcze, ja jestem tępy prawdopodobnie i mam z myśleniem problemy :/ Fakt, artykuł Adama (respect) w porządku, ale tam jest set a to nie rozwiązuje mojego problemu, bo ja bym chciał takie właśnie "drzewko" (nareszcie znalazłem słowo, które dobrze opisuje moją "zachciankę"! ;]), ale nie na secie bo wtedy mi tylko true i false zostają, a potrzebuję różnych przeróźniastych pól... Próbowałem z rekordem, z klasą już nie wiem... A może po prostu jestem zbyt głupi na takie rzeczy i lepiej, żebym dał sobie spokój z pisaniem komponentów...
P.S. Wpisałem w wyszukiwarce "własne komponenty" a dziś jeszcze na inne sposoby tę frazę i nie otrzymałem żadnych wyników, chociaż artykuł nazywa się właśnie "Własne komponenty"...:P
A co Vogel napisał? Dokładnie to, czego potrzebujesz. Zawsze możesz wśród ściągniętych z netu komponentów znaleźć taki który to ma i przeczytać źródła....
Dobra, przepraszam, Bóg Wam wszystkim Zapłać. Ślepne już powoli i dlatego mi nie wychodziło (za dużo siedze przy Delphi - hehe). Dzięki wielkie!