wł. komponent + pola w OI

0

Szukałem i nie znalazłem, może wydawać się banalne , ale na prawdę nie wiem jak to zrobić.

Chodzi mi o pole w OI np. "ustawienia". Ma ono być rozwijalne ([+] / [-])
a w nim mają być trzy pola, którym możemy przypisać string.

Próbowałem zrobić na rekordzie, ale coś nie idzie :(
Jeśli chodzi o Set Of , umiem zrobić tylko rozwijalną listę w której są pola boolean.

Domyślam się, że chyba należy zadeklarować nowy typ, ale coś nie mogę tego zrobić, bo to jest własny komponent.

Jakieś wskazówki? :)

0

To jest po prostu obiekt, a nie rekord.

0

hmmmmm

Błąd :

Published property 'Settings' cannot be of type OBJECT

coś jest nie tak?

0

komponent tfXPButton ma coś takiego. Właściwość Colors - rozwijamy i mamy listę kolorów. Zaimplementowano to tak:

<font color=darkblue>FColors      : TtfXPColor;</span>

(...)
<font color="darkblue">property Colors:ttfXPColor read FColors write FColors;</span>
gdzie tfXPColor jest klasą (a nie obiektem) określoną w pliku XP_Color:

<font color="darkblue">Type
TtfXPColor = Class(TPersistent)
Private
FOnChange: TNotifyEvent;
FBorderColor : TColor;</span>
(...)

i tak dalej :)
<font color="darkblue"></span>

0
type
  TTest = class (TObject)
    FFont: TFont;
  published
    Font: TFont;
  end;
0

Zrobiłęm tak, ale działa połowicznie tzn. wyświetla się pole i jest przy nim [+], ale jak klikne to sie nie rozwija, bo chyba nie ma nic w środku :)

type
TSettings = class(TObject)
private
FNick : string;
published
property Nick : String read FNick write FNick;
end;

type ( tutaj głowna klasa)
private
FSettings : TSettings;
published
property Settings : TSettings read FSettings
write FSettings;
end;

kurde juz nie wiem jak to zrobić :(

0

Dziękuję wszystkim, już sobie poradziłem :)

Dla zainteresowanych :

TSettings = class(TPersistent) - musi być TPersistent a nie TObject

no i zapomniałem dodać konstruktora i destruktora do klasy
ze stringami :)

poza tym to samo co wyżej :)

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