-
HandBrake (26.12.08 13:23) [0]Уважаемые мастера, помогите разобраться:
Есть класс
TPanelTest = class(TPanel)
private
FShortCut: TShortCut;
FShortCuts: TShortCuts;
procedure SetShortCut(const Value: TShortCut);
procedure SetShortCuts(const Value: TShortCuts);
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
...
published
{ Published declarations }
...
property ShortCut :TShortCut read FShortCut write SetShortCut;
property ShortCuts:TShortCuts read FShortCuts write SetShortCuts;
...
end;
плюс
TShortCuts = class( TPersistent )
private
FSecond: TShortCut;
FFirst: TShortCut;
procedure SetFirst(const Value: TShortCut);
procedure SetSecond(const Value: TShortCut);
...
published
property First :TShortCut read FFirst write SetFirst;
property Second:TShortCut read FSecond write SetSecond;
end;
когда кидаю компонент на форму:
А. Свойство ShortCut отображается в инспекторе объектов как и в элементе MenuItem: т.е. выпадаюший список с различными комбинациями клавиш;
Б. Свойство ShortCuts раскрывается плюсом, где против First и Second стоят нули.
Нужно писать PropertyEditor??? Или что-то другое?:( -
DimaBr © (26.12.08 14:24) [1]не нужно писать, нужно зарегистрировать для своего класса TShortCuts
-
DimaBr © (26.12.08 14:29) [2]RegisterPropertyEditor(TypeInfo(TShortCut), TShortCuts, '', TShortCutProperty);
-
HandBrake (26.12.08 14:43) [3]Да, Спасибо, только что сам дошел.
RegisterPropertyEditor(TypeInfo(TShortCut),TShortCuts,'', TShortCutProperty);
Просто не все понятно:
Например если классу TShortCuts добавить published-свойство Font:TFont, то с ним никаких проблем в инспекторе объектов нет. Почему для property Font не надо делать RegisterPropertyEditor??? Чем провинилось свойство типа TShortCut?
Плюс, в модуле надо Uses DesignIntf, ... , VCLEditors, а в requires пакета
designide. Это нормально с точки зрения деплоймента(лицензирования)? -
DimaBr © (26.12.08 15:28) [4]1. потому что для всойства Font (скорее всего) зарегистрированно так
RegisterPropertyEditor(TypeInfo(TFont), nil, '', TFontProperty);
То есть - для всех классов сразу
2. Думаю нормально, поскольку без дизайнера смылса в редакторе свойства нет никакого -
HandBrake (26.12.08 15:59) [5]To DimaBr ©
Спасибо за помощь!