![]() |
|
NetHttpClient Fmx Resim - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7) +--- Konu Başlığı: NetHttpClient Fmx Resim (/showthread.php?tid=5954) |
NetHttpClient Fmx Resim - cihankoca - 26-04-2021 Merhaba, Uygulamamda aşağıdaki kodlar ile resim getiriyorum. Lakin eğer istenen dosya yok ise hata dönüyor bana ve listview de listelenemiyor. Onun kontrolünü nasıl sağlayabilirim. Resmi Çağırdığım Bölüm :
try
MS := TMemoryStream.Create;
MS := ResimGoster('http://cihankoca.com.tr/resimler/201182.jpg');
if MS.Size > 0 then mtSatisResim.LoadFromStream(MS);
finally
FreeAndNil(MS);
end;
Resmi Kontrol Ettiğim Bölüm :
function TFrmSatis.ResimGoster(pUrl : string) : TMemoryStream;
var
qrString: String;
qrDims: integer;
Ms1 : TMemoryStream;
begin
if pUrl <> '' then
begin
qrDims := Screen.Width - 100;
qrString := pUrl;
try
Ms1 := TMemoryStream.Create;
try
NetHTTPClient1.get(qrString, Ms1);
except
end;
Ms1.Seek(0,soFromBeginning);
Result := Ms1;
finally
//FreeAndNil(Ms1);
end;
end
else
begin
//ShowMessage('Please, input a text.');
end;
end;
Teşekkürler NetHttpClient Fmx Resim - mrmarman - 26-04-2021 Mevcut yapı için konuşuyorum, öncelikle yapıda; function cevabı boolean yapın, tmemorystream'i parametre yapın. if ile function true ise memorystream içeriğini okuyun. try finally / try except ile de duruma göre result true-false değer alsın. NetHttpClient Fmx Resim - cihankoca - 26-04-2021 Merhaba Hocam Dediğiniz yaptım hem parametre olarak function da kullanıp hem de parametresiz dışarıdan kullanarak function sonucunda her ikisinde de boolean döndürerek ama aynı hata ile karşılaştım. NetHttpClient in değer alıp almadığını kontrol edemiyor gibi. Her halükarda bir değer dönüyor gibi çözümlüyorum NetHttpClient Fmx Resim - mrmarman - 26-04-2021 @cihankoca "hata dönüyor" derken exception düşüyor şeklinde yanlış anlamışım. * Resmin linkini bir browser'a yazdığınızda site ne cevap döndürüyorsa NetHttpClient o içeriği döndürür. Sizin verdiğiniz link örneğin şunu döndürüyor. Kod: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">Diğer yandan içerik kontrolüne gerek kalmadan şöyle yaparsanız olacaktır. Uses System.Net.HttpClientComponent; function ResimGoster(pUrl : string; pMS:TMemoryStream) : Boolean; var LClient : System.Net.HttpClientComponent.TNetHTTPClient; LResCode : Integer; begin Result := False; if pUrl <> '' then begin if Assigned(pMS) then begin LClient := System.Net.HttpClientComponent.TNetHTTPClient.Create(nil); try LResCode := LClient.Get( pUrl, pMS ).StatusCode; // 404 not forund // 200 OK pMS.Seek(0, soFromBeginning); Result := LResCode = 200; finally LClient.Free; end; end; end; end; NetHttpClient Fmx Resim - cihankoca - 27-04-2021 Teşekkürler hocam deneyeceğim. O linki bilerek verdim içinde birşey olmadığı için olmayan da hatadan nasıl kurtarırım diye. Oldu hocam teşekkürler |