İyi akşamlar. Programda kasma yapmadan çok sayıda resim indirmek istiyorum. Listede kanal isimleri var ve küçük resimlerini siteden indiriyor. Aynı resim linki kullandığımda birazcık kasmayla form açıyor ama iş her kanalın kendi resimlerine gelince kapatıyor programı. İndirme için böyle kod parçası yazdım.
function TDM.getImage(url: string): TMemoryStream;
var
HTTP: TIdHTTP;
MS: TMemoryStream;
begin
MS := TMemoryStream.Create;
HTTP := TIdHTTP.Create(nil);
try
HTTP.Get(url, MS);
MS.Seek(0, soFromBeginning);
Result := MS;
finally
//MS.Free;
HTTP.Free;
end;
end;
Asenkron işlem yaptıramıyor musun firmonkeyde ?
(02-01-2017, Saat: 19:36)yhackup Adlı Kullanıcıdan Alıntı: [ -> ]Asenkron işlem yaptıramıyor musun firmonkeyde ?
Merhaba. Bir kere kullanmıştım mobil işin yaptığımda pek performans göremediğimden projeyi java yazdım ve orda picasso kütüphanesi kullandım. Delphi böyle bişey vardır mutlaka ama ben çok uğraşmadım böyle işlerle.
(02-01-2017, Saat: 19:54)AliZairov Adlı Kullanıcıdan Alıntı: [ -> ] (02-01-2017, Saat: 19:36)yhackup Adlı Kullanıcıdan Alıntı: [ -> ]Asenkron işlem yaptıramıyor musun firmonkeyde ?
Merhaba. Bir kere kullanmıştım mobil işin yaptığımda pek performans göremediğimden projeyi java yazdım ve orda picasso kütüphanesi kullandım. Delphi böyle bişey vardır mutlaka ama ben çok uğraşmadım böyle işlerle.
Ben android uygulamalarımda hep kullanıyorum hemde hemen hemen tüm işlemlerde, işlem yaparken uygulmanın donması hiç hoşuma gitmiyor
(02-01-2017, Saat: 21:23)yhackup Adlı Kullanıcıdan Alıntı: [ -> ]Ben android uygulamalarımda hep kullanıyorum hemde hemen hemen tüm işlemlerde, işlem yaparken uygulmanın donması hiç hoşuma gitmiyor
Ben resim için kullanmak istiyorum hala uğraşıyorum bakalım ne olacak.
Resimi nereye indirmek istiyorsunuz ? TImage nesnesi içerisine mi yoksa local bir yola mı ?
(03-01-2017, Saat: 09:44)barisatalay Adlı Kullanıcıdan Alıntı: [ -> ]Resimi nereye indirmek istiyorsunuz ? TImage nesnesi içerisine mi yoksa local bir yola mı ?
Merhaba. Yok Listviewde listeye ekleyeceğim. Kod parçam basit şu an listeye ekleme yaptıkça itemi resminde indiriyo. Qarip bir görüntü oluyor tek-tek listeye ekleniyo.
function TDM.getImage(url: string): TMemoryStream;
var
MS: TMemoryStream;
HTTP: THttpClient;
begin
Application.ProcessMessages;
MS := TMemoryStream.Create;
HTTP := THttpClient.Create;
try
MS.Seek(0, soFromBeginning);
HTTP.Get(url, MS);
Result := MS;
finally
HTTP.Free;
//MS.free;
end;
end;
[
attachment=60]
Her Item'ın resminin indirilmesi için beklediğinize göre tek tek resimlerin gözükmesi ve ciddi bir yavaşlık oluşması gayet normal.
yhackup'un dediği gibi asenkron çalışmanız lazım. Bunun için Thread konusunu araştırmalısınız. Ayırca
Parallel Programming Library'i inceleyebilirsiniz.
TV logoları sabit olduğuna göre bunları programınızla birlikte, kurulum esnasında dağıtsanız? Sadece yeni kanalların logolarını internetten indirseniz?
(03-01-2017, Saat: 13:14)SimaWB Adlı Kullanıcıdan Alıntı: [ -> ]Her Item'ın resminin indirilmesi için beklediğinize göre tek tek resimlerin gözükmesi ve ciddi bir yavaşlık oluşması gayet normal.
yhackup'un dediği gibi asenkron çalışmanız lazım. Bunun için Thread konusunu araştırmalısınız. Ayırca Parallel Programming Library'i inceleyebilirsiniz.
Merhaba. Asenkron yaptım ama olmadı malesef. Thread bikaç defa uğraştım malesef başarılı olmadım. Kurguda yanlışlık var aslında. Sadece daha uyğun bir yol bulmam gerek. Şöyle nasıl yapa bilirim? Önce listeye eklensin veriler ve resimlerde kendileri yüklensin. Veb olarakta hazırlamıştım orda öyleydi. Mobilde android için picasso kütüphanesi kullanmıştım orda önce lsite sonra sırasıyla resimler indiriliyordu kasmadan.