procedure register;
begin
RegisterComponents('Samples', [TOurComponent]);
end;
{ TOurComponent }
procedure TOurComponent.SetMyChar(const Value: Char);
begin
FMyChar := Value;
end;
procedure TOurComponent.SetMyInteger(const Value: Integer);
begin
FMyInteger := Value;
end;
procedure TOurComponent.SetMyString(const Value: string);
begin
FMyString := Value;
end;
end.
Перечислимые свойства - это стандартные перечислимые, логический и определенные
пользователем перечислимые типы данных. В инспекторе объектов для них редакторы
свойств отображаются в виде списка выбора (combobox).
procedure register;
begin
RegisterComponents('Samples', [TOurComponent]);
end;
{ TOurComponent }
procedure TOurComponent.SetMyCursor(const Value: TCursor);
begin
FMyCursor := Value;
end;
procedure TOurComponent.SetMyEnumerate(const Value: TMyEnumerate);
begin
FMyEnumerate := Value;
end;
procedure TOurComponent.SetMyBoolean(const Value: Boolean);
begin
FMyBoolean := Value;
end;
end.
Свойства типа множество - это стандандартные, а также определенные пользователем,
множества. В инспекторе объектов для них редакторы свойств имеют знак [+]
перед названием свойства.
Размер публикуемых (published) свойств ограничен 32 элементами. Если
вам необходимо свойство с более чем 32 элементами - объявите свое свойство
публичным (public).
type
TMySet = (msOne, msTwo, msThee, msFour, msFive);
TMySets = set of TMySet;
TOurComponent = class(TComponent)
private
{ Private declarations }
FMySet: TMySets;
procedure SetMySet(const Value: TMySets);
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
property MySet: TMySets read FMySet write SetMySet;
end;
procedure register;
implementation
procedure register;
begin
RegisterComponents('Samples', [TOurComponent]);
end;
{ TOurComponent }
procedure TOurComponent.SetMySet(const Value: TMySets);
begin
FMySet := Value;
end;
end.
Объектные свойства - это стандартные (TFont, TCanvas и т.п.) или определенные
пользователем объекты, как правило наследники TPersistent. В инспекторе
объектов для них редакторы свойств имеют знак [+] перед названием свойства
и кнопку с тремя точками [...](пользовательский редактор свойства).
procedure register;
begin
RegisterComponents('Samples', [TOurComponent]);
end;
{ TOurComponent }
constructor TOurComponent.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{В отличие от предыдущих свойств, объекты обязательно
необходимо создавать в конструкторе компонента, как
правило после вызова унаследованного конструктора}
FMyFont.Create;
end;
destructor TOurComponent.Destroy;
begin
FMyFont.Free;
{В отличие от предыдущих свойств, объекты обязательно
необходимо разрушать в деструкторе компонента, как
правило перед вызовом унаследованного деструктора}
inherited Destroy;
end;
procedure TOurComponent.SetMyFont(const Value: TFont);
begin
{Объектному свойству значение присваивается с
помощью вызова метода Assign}
FMyFont.Assign(Value);
end;
end.
На заметку: Перемещение между объявлением метода и реализацией происходит
по нажатию клавиш Ctrl + Shift + стрелки вверх/вниз.