ActiveX в Delphi

Свойства компонента



Свойства компонента предназначены для доступа пользователя к внутренним полям компонента. Свойства позволяют изменять атрибуты компонента, в том числе и вычисляемыми значениями. Определение свойства компонента должно содержать его имя и тип, а также как минимум одно объявление способа доступа к данному свойству (описания). Синтаксис определения свойства компонента имеет вид:
property Имя свойства: тип описания;
- имя свойства - должно быть уникальным;
- тип - определяет, значения какого типа могут быть записаны в данном свойстве;
- описания - объявления способов доступа к этому свойству.
Как мы уже говорили, каждое свойство компонента должно иметь как минимум одно обязательное объявление способа доступа к свойству. К таким описаниям относятся read или write. Кроме того, в Delphi имеются дополнительные описания: stored, default (nodefault), implements.


Рассмотрим описания более подробно.
Синтаксис обязательных описаний read и write имеет следующий вид:
read поле или метод write поле или метод
где поле или метод - поле, из которого берется (или в которое помещается) значение свойства, или метод, который берет или помещает значение свойства компонента.
Несложно догадаться, что объявление read (читать) описывает поле или метод, предназначенный для чтения значения свойства, а объявление write (писать) описывает поле или метод, предназначенный для записи значения свойства компонента.
К необязательным описаниям способа доступа относятся описания stored, default (nodefault), implements.
Эти описания называют хранимыми описаниями, они не дают эффекта при выполнении программы, но отвечают за способы хранения переменных средой Delphi.
Описание stored может принимать любое из двух значений: true или false. Оно используется, когда Delphi сохраняет текущее состояние компонента. При сохранении, Delphi проверяет свойства компонента, если свойство отличается от величины, установленной по умолчанию и описание stored имеет значение true, то в этом случае новое значение величины свойства компонента сохраняется. В противном случае (когда описание stored имеет значение false) новое значение величины свойства не сохраняется.
Для установки значения свойства компонента по умолчанию используется писание default.
Приведем пример описания свойства компонента:
property MaxLength: Integer read FMaxLength write SetMaxLength default 0;
В этом примере мы описываем свойство компонента, которое имеет имя MaxLength, тип integer и получает значение из поля FMaxLength, а для записи значения в поле FMaxLength используется метод SetMaxLength. По умолчанию, значение данного свойства равно о.
Наконец, описание implements служит для поддержки свойством компонента интерфейсов. Например,
property Mylnterface: IMylnterface read FMylnterface implements IMylnterface;
Описание implements должно находиться в самом конце описаний. Оно может содержать несколько интерфейсов, разделенных запятыми. Свойство, содержащее описание implements, должно:
- быть классом или интерфейсом;
- не быть массивом;
- иметь описание read.

Содержание раздела