Lösung:
function load_picture(const url : String) : TGIFImage;
.
Warum hast du das überhaupt als Var-Parameter (Variable) angelegt?
[add]
Ich würde es eher so absichern, da sonst immernoch potentielle Speicherlecks vorhanden wären.
Delphi-Quellcode:
function load_picture(
url :
String) : TGIFImage;
var
Stream : TMemoryStream;
begin
if url <> '
'
then
begin
Result := TGIFImage.Create;
try
Stream := TMemoryStream.Create;
try
Form1.IdHTTP1.Get(
url, Stream);
Stream.Position := 0;
Result.LoadFromStream(Stream);
finally
Stream.Free;
end;
except
Result.Free;
end;
end else
Result :=
nil;
end;
Wenn man eine Variable wie Form1. benötigt, ist so gut wie sicher, daß da etwas in der Planung falsch gelaufen ist und daß IdHTTP1 entweder mit als Parameter an die Funktion übergeben werden sollte oder daß diese Funktion als Methode in TForm1 hineingehört.
Die Warnung bezüglich des "undefinierten Funktionsergebnisses" sollte man nicht ignorieren.
Und das
Exit
... nja, unnötig, aber was soll's ... ist nur unschön/unnötig, aber wenigstens nicht böse/schlimm.