Что нового
  • Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Delphi Сохранение настройки приложения по использованию JSON

Lomanu4 Онлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,202
Баллы
155
Код:
uses
   System.IOUtils, System.JSON;

procedure TForm1.btLoadClick(Sender: TObject);
var
  AOptions: TJSONObject;
  AGroup: TJSONObject;
  AParam: TJSONValue;
begin
  if FileExists(FFileName) then
  begin
    AOptions := TJSONObject(TJSONObject.ParseJSONValue(TFile.ReadAllText(FFileName)));

    AGroup := TJSONObject(AOptions.GetValue('group1'));
    if AGroup <> nil then
    begin
      AParam := AGroup.GetValue('edit1');
      if AParam <> nil then
        Edit1.Text := TJSONString(AParam).Value;

      AParam := AGroup.GetValue('edit2');
      if AParam <> nil then
        Edit2.Text := TJSONNumber(AParam).Value;
    end;

    AGroup := TJSONObject(AOptions.GetValue('group2'));
    if AGroup <> nil then
    begin
      AParam := AGroup.GetValue('checkbox1');
      if AParam <> nil then
        CheckBox1.IsChecked := AParam is TJSONTrue;
    end;
  end;
end;

procedure TForm1.btSaveClick(Sender: TObject);
var
  AOptions: TJSONObject;
  AGroup: TJSONObject;
  AParam: TJSONValue;
  APair: TJSONPair;
begin
  AOptions := TJSONObject.Create;

  AGroup := TJSONObject.Create;
  AGroup.AddPair('edit1', Edit1.Text);
  if Edit2.Text.Trim <> '' then
    AGroup.AddPair('edit2', TJSONNumber.Create(Edit2.Text));

  AOptions.AddPair('group1', AGroup);

  AGroup := TJSONObject.Create;
  if CheckBox1.IsChecked then
    AGroup.AddPair('checkbox1', TJSONTrue.Create)
  else
    AGroup.AddPair('checkbox1', TJSONFalse.Create);

  AOptions.AddPair('group2', AGroup);

  TFile.WriteAllText(FFileName, AOptions.ToString);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  {$IFDEF ANDROID}
  //Если файл во внутреннем накопителе то GetDocumentsPath
  //Если файл на внешнем накопителе то GetSharedDocumentsPath
  FFileName := TPath.Combine(TPath.GetSharedDocumentsPath, 'Options.json');
  {$ENDIF}

  {$IFDEF MSWINDOWS}
  FFileName := ExtractFilePath(ParamStr(0)) + 'Options.json';
  {$ENDIF}
end;
 

7.UP

Проверянный
Принятый Кодер
Регистрация
23 Ноя 2015
Сообщения
14
Баллы
30
Возраст
23
ругается на - FFileName, что делать?
 
Lomanu4 Онлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,202
Баллы
155
Вверх