Da mich das with etwas irritiert hat und mir nicht auf Anhieb klar wurde, was jetzt da wo und wie zusammengehört, hab' ich den Quelltext mal umformatiert und Kommentare eingefügt, ventuell hilft das ja schon weiter.
Delphi-Quellcode:
procedure TDownloader.Execute;
var
S :
string;
HTTPClient : TIdHTTP;
Bmp : TBitmap;
begin
HTTPClient := TIdHTTP.Create;
try
try
HTTPClient.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(
nil);
HTTPClient.Get(fURL,fStream );
except ///das geht leider nicht!!!
raise Exception.CreateFmt('
Error %S<%S>%Sis not a valid path%S try another Image',[LF,fURL,LF,LF]);
end;
// ------------------------------------------------------------
// Und was ist, wenn der Fehler erst irgendwo ab hier passiert?
// ------------------------------------------------------------
fGraficType := GetGraficType;
// Ist das wirklich so gemeint?
// Das Original verhält sich wohl so.
if fGraficType <> gt_None
then
begin
Bmp := SetGraphic2Bmp(fGraficType, fStream);
end;
// Gehört das nicht eher mit in die IF-Abfrage?
// Bei fGraficType = gt_None wird trotzdem Bmp zugewiesen.
// Soll das so sein?
// Jedenfalls gibt es in dem Fall kein Bmp := TIrgendwas.Create(WieAuchImmer).
// Kann man so ein (quasi nicht existentes) Bmp trotzdem per Assign irgendwie nutzen?
fImage.Picture.Bitmap.Assign(Bmp);
finally
HTTPClient.Free;
Bmp.Free;
end;
end;