anchor.diff:      destructor Destroy; override;
   
       property Path: string read GetPath;
  +    property NeedToSave: Boolean read fNeedsSave;
   
       procedure ReloadSettings;
       procedure SaveSettings(aForce: Boolean = False);
  
positive.code: end;
  
  
  function TKMSettings.NeedToSave: Boolean;
  begin
    Result := fNeedsSave;
  end;
  
  
  procedure TKMSettings.ReloadSettings;
  begin
    LoadFromDefaultFile;
  
negative.code: 
      procedure Changed;
      function GetDefaultSettingsName: string; virtual; abstract;
  
      procedure LoadFromFile(const aPath: string); virtual; abstract;
      procedure SaveToFile(const aPath: string); virtual; abstract;
  