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

  • Автор темы Автор темы Lomanu4
  • Дата начала Дата начала

Lomanu4

Команда форума
Администратор
Ofline
Код:
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;
 
ругается на - FFileName, что делать?
 
Назад
Сверху Снизу