„тобы вновь созданный редактор свойства стал известен среде Delphi, его нужно зарегистрировать. ƒл¤ регистрации используетс¤ процедура RegisterProperty-Editor, имеюща¤ такой прототип:

procedure RegisterPropertyEditor(PropertyType: PTypelnfo;
ComponentClass: TClass;
const PropertyName: String;
EditorClass: TPropertyEditorClass);

«десь (на примере регистрации редактора TPolyProperty, см. 11.1.3):

Х PropertyType Ч RTTI-информаци¤ о типе редактируемого свойства (обычно получаетс¤ вызовом функции Typeinfo с передачей ей имени типа, например: Typelnf о (TPolygon));
Х ComponentClass Ч им¤ класса компонента: TFarRgnButton;
Х PropertyName Ч им¤ редактируемого свойства: 1 Polygon1;

Х EditorClass Ч им¤ класса редактора: TPolyProperty; Ќекоторые из параметров могут быть пустыми.

≈сли вместо ClassName указан параметр NIL, редактор будет использоватьс¤ дл¤ всех свойств данного типа во всех компонентах. ƒл¤ экзотических типов наподобие TPolygon это, возможно, и допустимо, но дл¤ типов String или Integer такой прием, скорее всего, будет неоправданным. ¬спомним, что в 11.1.3 мы создали простенький редактор дл¤ типа TAppName. Ётот тип определен так:

type TAppName = type String;

”казание зарезервированного слова type в объ¤влении типа заставит компил¤тор создать RTTI-информацию. ¬ результате, компил¤тор станет считать тип TAppName самосто¤тельным типом, во всем подобным типу String. ѕосле этого следующее обращение зарегистрирует редактор TAppNameProperty не дл¤ всех строковых свойств, а только дл¤ тех из них, которые имеют тип TAppName:

RegisterPropetyEditor(Typeinfo(TAppName), NIL, 11, TAppNameRoperty);

≈сли вместо ComponentClsss указываетс¤ NIL, параметр PropertyName игнорируетс¤ и обычно замен¤етс¤ пустой строкой.

≈сли параметр ComponetName определен, а параметр PropertyName представлен пустой строкой, редактор будет использоватьс¤ во всех свойствах типа PropertyType только данного компонента ComponentName.

11.1.4. ќпределение атрибутов редакторов свойств || ќглавление || 11.2. -оздание редакторов компонентов


Искусство создания компонентов Delphi



Новости за месяц

  • Декабрь
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31