anchor.diff:        FConfigFile : TConfigFile;
       private
         type
  -        TFilterPredicate = reference to function (const Instance : TObject; const Prop : TRttiProperty) : Boolean;
  +        TFilterPropPredicate = reference to function (const Instance : TObject; const Prop : TRttiProperty) : Boolean;
       private
  -      function  FilterConfig(const Instance : TObject; const Prop : TRttiProperty) : Boolean;
  -      procedure GenerateFullConfig;
  -      procedure ReadObjectFromConfig(const Instance : TObject; Filter : TFilterPredicate);
  -      procedure WriteObjectToConfig(const Instance : TObject; Filter : TFilterPredicate);
  +      function  FilterConfigProp(const Instance : TObject; const Prop : TRttiProperty) : Boolean;
  +      procedure GenerateDefaultConfig;
  +      procedure ReadObjectFromConfig(const Instance : TObject; Filter : TFilterPropPredicate);
  +      procedure WriteObjectToConfig(const Instance : TObject; Filter : TFilterPropPredicate);
       protected
         procedure FillDataFromFile;
         procedure FillFileFromData;
  
positive.code:   end;
  end;
  
  procedure TConfigManager.GenerateFullConfig;
  begin
    SetDefaults;
    FillFileFromData;
  end;
  
  procedure TConfigManager.ReadObjectFromConfig(const Instance : TObject; Filter : TFilterPredicate);
    var
      Ctx : TRttiContext;
      InstanceType : TRttiInstanceType;
  
negative.code:   WriteObjectToConfig(FConfigData,
      function (const Instance : TObject; const Prop : TRttiProperty) : Boolean
      begin
        Result := Prop.IsReadable and FilterConfigProp(Instance, Prop);
      end
    );
    FConfigFile.Save;
  end;
  
  function TConfigManager.FilterConfigProp(const Instance : TObject; const Prop : TRttiProperty) : Boolean;
    var
      Attr : TCustomAttribute;
  begin
  