Перейти к содержанию
Fire Monkey от А до Я
  • 0

Где хранить настройки?


shershen

Вопрос

Рекомендуемые сообщения

  • 0

А разве это кошерно? А для разных юзеров?

Понятно, что для разных юзеров, в случае хранения настроек как я предложил, немного сложнее реализовать все как надо. Но с другой стороны, лично я очень не люблю программы, которые своими файлами засир... засоряют всю систему, а потом при удалении программы не убирают их за собой. Поэтому сам стараюсь делать программу так, чтобы удалить ее было как можно проще. Вплоть до простого удаления папки с программой. В общем, все свое ношу с собой, так сказать :)
Ссылка на комментарий
  • 0

Ну под Windows и MacOS можно типа так:

function GetMyINIPath(const ASubdir: string = ''): string;
begin
  try
    if ASubdir = '' then
    Result :=
      IncludeTrailingPathDelimiter({$IFDEF MACOS}'/Users/Shared/'{$ELSE}GetHomePath{$ENDIF}) +
      ChangeFileExt(ExtractFileName(ParamStr(0)), '')
    else
    Result :=
    IncludeTrailingPathDelimiter({$IFDEF MACOS}'/Users/Shared/'{$ELSE}GetHomePath{$ENDIF}) +
      ChangeFileExt(ExtractFileName(ParamStr(0)), '') + PathDelim + ASubdir;
    if not DirectoryExists(Result) then
      ForceDirectories(Result);
  except
    Result := '';
  end;
end;

А использовать, соответственно, так:

TPath.Combine(GetMyINIPath, _ваш_файл_);

А под Android, например, еще проще можно:

TPath.Combine(TPath.GetDocumentsPath, _ваш_файл_);

Может не слишком "красиво", но работать все должно.

Ссылка на комментарий
  • 0

А в папке рядом с исполняемым файлом разве нельзя хранить?

Такая программа зарежется на постпродакшене: что на Win, что на OSX

Это только если писать софт "для себя". Ну либо если из ini данные только считываются, что не имеет смысла)

Ссылка на комментарий
  • 0

Запись, например в виндовые program files, запрещена для не админа. В osx аналогично. Это уже несколько оффтоп и на эту тему масса информации в интернете. (UAC, права,и.т.д..)

 

Для osx я уже выше написал что делать, для виндоса же можно использовать GetSpecialFolderPath()

Ссылка на комментарий
  • 0

Можно использовать класс TUserInifile из модуля Apple.Inifiles, который был в XE4 если не ошибаюсь. Он хранит настройки персонально для каждого пользователя в plist-ах (в ~/Library/Preferences) используя класс NSUserDefaults

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...