1.3.38 $VARPROPSETTER : Разрешить использование var/out/const параметров для установки свойств

На верх  Назад  Вперёд

Эта логическая директива предназначена для импорта COM-интерфейсов. Иногда COM интерфейсы имеют уставщики свойств, принимающие аргументы, не по значению, а по ссылке. Использование этих установщиков, как правило, запрещено. Эта директива позволяет использовать установщики свойств с аргументами var, const, out. По умолчанию она выключена. Эффективна при объявлении интерфейсов, но не для определения классов.

Следующий пример компилируется только в состоянии ON:

{$VARPROPSETTER ON}
Type
TMyInterface = Interface
  Procedure SetP(Var AValue : Integer);
  Function GetP : Integer;
  Property MyP : Integer Read GetP Write SetP;
end;

В выключенном (OFF) состоянии, будет сгенерировано сообщение об ошибке:

testvp.pp(7,48) Error: Illegal symbol for property access

testvp.pp (7,48) Ошибка: Недопустимый символ для доступа к свойству