Witam wszystkich, potrzebuję nieco rozbudować komponent TListBox
o kilkanaście właściwości, które będą umieszczone w trzech podstawowych grupach; Jak na razie próbuję zrobić pierwszą grupę, ale coś mi nie wychodzi...
Potrzebuję, by na liście w ObjectInspector
pojawiła się grupa Colors
, w której znajdować się będą takie właściwości:
- Text
- TextActive
- Back
- BackActive
- DotsLine
Wszystkie te właściwości mają przechowywać kolor (czyli typTColor
); Grupa ma się nazywaćColors
;
Sugerowałem się artykułami z 4p:
http://4programmers.net/Delphi/ARtykuły/Jak_korzystać_z_TPersistent
i ze strony FlyLib:
http://flylib.com/books/en/1.228.1.154/1/
niestety grupa się pokazuje, ale nie chce się rozwijać... Grzebię w tym już od południa i dalej nie wiem, co jest źle, kod poniżej:
unit FldListBox;
interface
uses
SysUtils,
Classes,
Controls,
StdCtrls,
Graphics;
type
TFoldersListBoxColors = class(TPersistent)
private
FText: TColor;
FTextActive: TColor;
FBack: TColor;
FBackActive: TColor;
FDotsLine: TColor;
published
property Text: TColor read FText write FText;
property TextActive: TColor read FTextActive write FTextActive;
property Back: TColor read FBack write FBack;
property BackActive: TColor read FBackActive write FBackActive;
property DotsLine: TColor read FDotsLine write FDotsLine;
end;
type
TFoldersListBox = class(TListBox)
private
FColors: TFoldersListBoxColors;
public
{$WARNINGS OFF}
constructor Create(AOwner: TComponent);
destructor Destroy(); override;
{$WARNINGS ON}
published
property Colors: TFoldersListBoxColors read FColors write FColors;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('pnggc', [TFoldersListBox]);
end;
constructor TFoldersListBox.Create(AOwner: TComponent);
begin
inherited Create(Aowner);
FColors := TFoldersListBoxColors.Create();
with FColors do
begin
FText := clBlack;
FTextActive := clWhite;
FBack := clWhite;
FBackActive := clMenuHighlight;
FDotsLine := clGray;
end;
end;
destructor TFoldersListBox.Destroy();
begin
FColors.Free();
inherited Destroy();
end;
end.
Moduł się oczywiście kompiluje, w programie 'kładąc' komponent na formie też nie wyskakują żadne błędy, program też się kompiluje i działa bez zarzutu, usuwać - też się usuwa z pamięci bezproblemowo;
Moje pytanie brzmi - co jeszcze mam zrobić by klasa działała jak należy?