1.3.37 $VARPROPSETTER : Enable use of var/out/constref parameters for property setters.

This boolean directive is meant to import COM interfaces. Sometimes COM interfaces have property setters which accept arguments that are not by value, but by reference. These setters are normally forbidden. This flag enables the use of property setters with var, constref, out arguments. By default it is OFF. Note that it affects all properties that write to a setter procedure, including those of objects and extended records.

The following example only compiles in the ON state:

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

In the OFF state, the following error will be generated:

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