Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#1

TJSonObject Freigabe

  Alt 20. Mär 2020, 18:28
Hallo

Ich wollte mit privat schnell mal Währungskurse holen mit Fixer.io API.

Delphi-Quellcode:
procedure TFrmMain.Button1Click(Sender: TObject);
Var
  LHttp: THttpClient;
  LResp: IHttpResponse;
  LJObj: TJSonObject;
  LJRates: TJSonObject;
  LUrl: string;
  I: Integer;
begin
  LUrl := BaseUrl + 'latest?access_key=' + Key + '&symbols=USD,GBP,NOK,HKD&format=1';
  LHttp := THTTPClient.Create;
  try
    LResp := LHttp.Get(LUrl);
    LJObj := TJSONObject.ParseJSONValue(LResp.ContentAsString(TEncoding.UTF8)) as TJSONObject;
    try
      LJRates := LJObj.GetValue<TJSONObject>('rates');
      try
        for I := 0 to LJRates.Count - 1 do
        begin
          Memo1.Lines.Add(LJRates.Pairs[I].JsonString.Value);
          Memo1.Lines.Add(LJRates.Pairs[I].JsonValue.Value);
        end;
      finally
        LJRates.Free;
      end;
    finally
      //LJObj.Free;
    end;
  finally
    LHttp.Free;
  end;
end;
Will ich LJObj freigeben, erhalte ich eine AV.
LJRates kann ich freigeben.

Aber was ich auch mache, am Ende erhalte ich beim Verlassen Memory Leaks.
Was mache ich falsch?

Danke

Frank
Miniaturansicht angehängter Grafiken
memleak.jpg  
Frank Reim
  Mit Zitat antworten Zitat