Im пытается загрузить удаленный XML-файл с использованием Delphi. Я предполагаю, что могу загрузить его из Stream. У меня есть класс FetchRemote, который извлекает поток URL:Возвращение XML-документа из функции
function TFetchRemote.StreamFromUrl(filename : String) : TMemoryStream;
var
memStream : TMemoryStream;
http : TIdHttp;
begin
http := TIdHttp.Create();
memStream := TMemoryStream.Create;
http.Get(url + filename, memStream);
Result := memStream;
end;
Я пытаюсь использовать возвращаемый поток памяти для загрузки удаленного XML:
function TFetchRemoteXML.XMLFromUrl(filename : string) : TXMLDocument;
var
memStream : TMemoryStream;
begin
memStream := fetchRemote.StreamFromURL(filename);
try
memStream.Position := 0;
Result := TXMLDocument.LoadFromStream(memStream);
finally
memStream.Free;
end;
end;
ошибка, что я получаю, когда я пытаюсь компиляции это: (на обратном Результат линии)
[dcc32 Error] FetchRemoteXML.pas (31): E2076 Эта форма вызова метода допускается только для методов класса или конструктора
У меня есть аналогичный класс/метод для извлечения удаленного растрового изображения, и он отлично работает. Я просто не вижу, что я делаю неправильно, чтобы получить XML. Я пробовал следовать некоторым примерам в помощи Delphi и пытался получить некоторые подсказки от этого StackOverflow question, но не повезло. Любые предложения были бы очень благодарны, я новичок в Delphi (с фона Ruby). Я использую RAD Studio XE 5.
Заранее спасибо!
Ваш код указывает, что вы можете не знать о правилах управления жизненным циклом объекта в Delphi. Возможно, вам понадобится немного времени и узнать это сейчас. –