Параметры компонента в Инспекторе объектов
Модератор: Модераторы
Параметры компонента в Инспекторе объектов
хочу сгруппировать параметры по тематике в своем компоненте, столкнулся с сложностью, не могу реализовать подобное.
как описать свой компонент чтобы в инспекторе объектов параметры раскрывались в поддерево
(например как параметр Font у компонента TEdit) (см вложение)
как описать свой компонент чтобы в инспекторе объектов параметры раскрывались в поддерево
(например как параметр Font у компонента TEdit) (см вложение)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось alaken 04.05.2010 10:30:24, всего редактировалось 3 раза.
В данном случае свойство Font является классом наследованным от TPersistent.
Инспектор объектов для класса TPersistent имеет особый редактор, который реализует сворачивание/разворачивание свойтв класса.
Инспектор объектов для класса TPersistent имеет особый редактор, который реализует сворачивание/разворачивание свойтв класса.
Код: Выделить всё
type
TMy = class(TPersistent)
...
published
property Test: Integer read fTest write fTest;
...
end;
TMyComp = class(TComponent)
....
published
property Item: TMy read fItem write fItem;
....
end;
Объект должен быть классом + объявлен как published property
Добавлено спустя 3 минуты 19 секунд:
mr. Smart прав, забыл дописать, класс д.б. производным от TPersistent, чтобы считать/записывать
Добавлено спустя 3 минуты 19 секунд:
mr. Smart прав, забыл дописать, класс д.б. производным от TPersistent, чтобы считать/записывать
все это я учел, но почему то ничего не появилось в инспекторе объектов...
объявление класса:
и в классе компонента в разделе published
объявление класса:
Код: Выделить всё
TColors = class
private
FActive: TColor;
FActiveHighLighted: TColor;
FHighLighted: TColor;
FInactive: TColor;
procedure SetActive
(
const AValue: TColor
);
procedure SetActiveHighLighted
(
const AValue: TColor
);
procedure SetHighLighted
(
const AValue: TColor
);
procedure SetInactive
(
const AValue: TColor
);
public
constructor Create;
destructor Destroy;
published
property Active: TColor
read FActive
write SetActive;
property Inactive: TColor
read FInactive
write SetInactive;
property HighLighted: TColor
read FHighLighted
write SetHighLighted;
property ActiveHighLighted: TColor
read FActiveHighLighted
write SetActiveHighLighted;
end;
{ TColorsProperty }
TColorsProperty = class (TPersistent)
private
FBorder: TColors;
FGradientEnd: TColors;
FTabFace: TColors;
FText: TColors;
procedure SetBorder
(
const AValue: TColors
);
procedure SetGradientEnd
(
const AValue: TColors
);
procedure SetTabFace
(
const AValue: TColors
);
procedure SetText
(
const AValue: TColors
);
public
constructor Create; //override;
destructor Destroy; //override;
published
property Border: TColors
read FBorder
write SetBorder;
property TabFace: TColors
read FTabFace
write SetTabFace;
property GradientEnd: TColors
read FGradientEnd
write SetGradientEnd;
property Text: TColors
read FText
write SetText;
end; и в классе компонента в разделе published
Код: Выделить всё
property Colors: TColorsProperty
read FColors
write SetColors; так класс TColors должен быть тоже наследником TPersistent.
Спасибо, вопрос решен.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
не буду начинать новую ветку, продолжу тут.
параметр TPicture выдет AV при нажатии кнопок "..." в Инспекторе объектов.
Помогите разобраться.
параметр TPicture выдет AV при нажатии кнопок "..." в Инспекторе объектов.
Помогите разобраться.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
alaken
Как объявлено и инициализируется свойство Picture?
Как объявлено и инициализируется свойство Picture?
Mr.Smart писал(а):alaken
Как объявлено и инициализируется свойство Picture?
Свойство было только объявлено, но не иницированно.
Добавил инициацию в секцию конструктора компонента, все стало работать как надо.
Но получается объект TPicture будет висеть в памяти даже если я его не связал с изображением...
это расточительно.
как сделать свойство-список?
вроде как наследник должен быть TCollection, но незнаю с чего начать...
как сделать свойство-список?
вроде как наследник должен быть TCollection, но незнаю с чего начать...
alaken писал(а):как сделать свойство-список?
В смысле? Выподающий список? ComboBox?
Mr.Smart писал(а):alaken писал(а):как сделать свойство-список?
В смысле? Выподающий список? ComboBox?
нет
посомтрите свойство TStringGrid.Columns,такое как там...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
