Size: a a a

2020 January 28

DB

Dmitry Belkevich in Delphi & Lazarus
Сергей Иванов
ладно звучит пока за гранью на моем левеле :)
да что тут такого? :) кинуть в папку пачку файлов, прописать к ней путь в свойствах проектов и в uses написать superobject
источник

Дt

Дмитрий texnix 🇨🇳 in Delphi & Lazarus
не пачку а тока 2
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Kit Bayun
по идее, в каждой библиотеке компонент должна быть инструкция по установке
так там установки то нету, то и ставить нечего
источник

DB

Dmitry Belkevich in Delphi & Lazarus
можно вообще тупо в папку проекта кинуть и вообще ничего нигде не делать
источник

KB

Kit Bayun in Delphi & Lazarus
ну инструкция по использованию, если прописывать каки-то там пути, то какие именно и куда именно
источник

RS

Renat Suleymanov in Delphi & Lazarus
Короче, вот в Лазарусе так можно прочитать JSON настройки из файла в твой объект

procedure LoadFromJSON(AObject: TObject; const AFileName: String);
var
 ADeStreamer: TJSONDeStreamer;
 AJSON: TStringList;
begin
 if not FileExists(AFileName) then
   Exit;
 ADeStreamer:=TJSONDeStreamer.Create(nil);
 try
   AJSON:=TStringList.Create;
   try
     AJSON.LoadFromFile(AFileName);
     ADeStreamer.JSONToObject(AJSON.Text, AObject);
   finally
     AJSON.Free;
   end;
 finally
   ADeStreamer.Free;
 end;
end;
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Kit Bayun
ну инструкция по использованию, если прописывать каки-то там пути, то какие именно и куда именно
не ну базовые вещи в работе ide нужно знать. не в каждой же либе буквари повторять :)
источник

DB

Dmitry Belkevich in Delphi & Lazarus
вот примеров больше - то это да. собственно - я как раз там и дописал слегка
источник

KB

Kit Bayun in Delphi & Lazarus
да, просто это кагбэ общепринято, потому что способов установки или использования может быть несколько, так сказать, это правила хорошего тона :)
источник

СИ

Сергей Иванов in Delphi & Lazarus
Renat Suleymanov
Короче, вот в Лазарусе так можно прочитать JSON настройки из файла в твой объект

procedure LoadFromJSON(AObject: TObject; const AFileName: String);
var
 ADeStreamer: TJSONDeStreamer;
 AJSON: TStringList;
begin
 if not FileExists(AFileName) then
   Exit;
 ADeStreamer:=TJSONDeStreamer.Create(nil);
 try
   AJSON:=TStringList.Create;
   try
     AJSON.LoadFromFile(AFileName);
     ADeStreamer.JSONToObject(AJSON.Text, AObject);
   finally
     AJSON.Free;
   end;
 finally
   ADeStreamer.Free;
 end;
end;
мне их сперва надо записать в файл :)
источник

RS

Renat Suleymanov in Delphi & Lazarus
Сергей Иванов
мне их сперва надо записать в файл :)
Намек понял... )
procedure SaveToJSON(AObject: TObject; const AFileName: String);
var
 AStreamer: TJSONStreamer;
 AJSON: TStringList;
 AJSONObject: TJSONObject;
begin
 AStreamer:=TJSONStreamer.Create(nil);
 AJSON:=TStringList.Create;
 try
   AJSONObject:=AStreamer.ObjectToJSON(AObject);
   try
     AJSON.Text:=AJSONObject.FormatJSON();
     AJSON.SaveToFile(AFileName);
   finally
     AJSONObject.Free;
   end;
 finally
   AJSON.Free;
   AStreamer.Free;
 end;
end;
источник

RS

Renat Suleymanov in Delphi & Lazarus
Renat Suleymanov
Намек понял... )
procedure SaveToJSON(AObject: TObject; const AFileName: String);
var
 AStreamer: TJSONStreamer;
 AJSON: TStringList;
 AJSONObject: TJSONObject;
begin
 AStreamer:=TJSONStreamer.Create(nil);
 AJSON:=TStringList.Create;
 try
   AJSONObject:=AStreamer.ObjectToJSON(AObject);
   try
     AJSON.Text:=AJSONObject.FormatJSON();
     AJSON.SaveToFile(AFileName);
   finally
     AJSONObject.Free;
   end;
 finally
   AJSON.Free;
   AStreamer.Free;
 end;
end;
Я тут похоже с try переборщил - можно уменьшить и будет лаконичней выглядеть
источник

СИ

Сергей Иванов in Delphi & Lazarus
да выглядит как абракатабра  кроме begin-ов и глазу зацепиться незачто :)
источник

RS

Renat Suleymanov in Delphi & Lazarus
Сергей Иванов
да выглядит как абракатабра  кроме begin-ов и глазу зацепиться незачто :)
Процедура простая на самом деле. Без всяких сторонних компонентов. Только fpjsonrtti в uses добавить не забыть
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Kit Bayun
да, просто это кагбэ общепринято, потому что способов установки или использования может быть несколько, так сказать, это правила хорошего тона :)
а какие варианты? :) только путь прописать если нужно. больше ничего не сделать никак
источник

Дt

Дмитрий texnix 🇨🇳 in Delphi & Lazarus
с супер обжект можно создать любой класс, напихать в него значений, затем .asjson и сохранить
источник

Дt

Дмитрий texnix 🇨🇳 in Delphi & Lazarus
2 строчки.
источник

Дt

Дмитрий texnix 🇨🇳 in Delphi & Lazarus
procedure TOptions.SaveToFile;
var ss:TStringStream;   test:TStringStream;
tm:string;
begin
 tm:=Self.asJson;
 ss:=TStringStream.Create(XorEncode(tm,xork));
 try
   ss.SaveToFile('init.dll');
 finally
   ss.free;
 end;
end;
источник

RS

Renat Suleymanov in Delphi & Lazarus
Дмитрий texnix 🇨🇳
с супер обжект можно создать любой класс, напихать в него значений, затем .asjson и сохранить
А в приведенной процедуре по сути просто тупо сохраняется в файл. Остальное обвески
источник

СИ

Сергей Иванов in Delphi & Lazarus
Renat Suleymanov
Процедура простая на самом деле. Без всяких сторонних компонентов. Только fpjsonrtti в uses добавить не забыть
что-то не так прописал?
источник