Konuyu Oyla:
  • Derecelendirme: 4.33/5 - 3 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Kasmadan resim indirme [ÇÖZÜLDÜ]
#11
Logosu olmayanlara geçici logo atayın. Örneğin kanalın ilk 3 harfi. Logo zemin renkleri de birbirinden farklı olsun. Arka planda inen logo olursa geçici logoyu kaldırıp inen logoyu kullanırsın. Logolar indikçe değişirken kullanıcı uygulamayı kullanmaya devam eder.
Cevapla
#12
(03-01-2017, Saat: 13:14)SimaWB Adlı Kullanıcıdan Alıntı: 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?
Mantıklı bir öneri.
Hem internetten veri çekilmeyeceği için daha hızlı çalışacaktır.Hem de gereksiz yere vatandaşın interneti sömürülmeyecektir.
One of the major software engineering challenges is managing change.
Cevapla
#13
(03-01-2017, Saat: 13:53)engerex Adlı Kullanıcıdan Alıntı: Logosu olmayanlara geçici logo atayın. Örneğin kanalın ilk 3 harfi. Logo zemin renkleri de birbirinden farklı olsun. Arka planda inen logo olursa geçici logoyu kaldırıp inen logoyu kullanırsın. Logolar indikçe değişirken kullanıcı uygulamayı kullanmaya devam eder.

Merhaba. Evet onu yaparım. Liste her bir itemin kendi resmini sonradan yüklenmesini nasıl sağlaya bilirim onu düşünmem gerek.

kimimbenMantıklı bir öneri.
Hem internetten veri çekilmeyeceği için daha hızlı çalışacaktır.Hem de gereksiz yere vatandaşın interneti sömürülmeyecektir.

Merhaba. İndirme olayında bir klasör ayıracağım inen resmi tekrar indirmemesi için.
WWW
Cevapla
#14
(03-01-2017, Saat: 14:21)AliZairov Adlı Kullanıcıdan Alıntı:
(03-01-2017, Saat: 13:53)engerex Adlı Kullanıcıdan Alıntı: Logosu olmayanlara geçici logo atayın. Örneğin kanalın ilk 3 harfi. Logo zemin renkleri de birbirinden farklı olsun. Arka planda inen logo olursa geçici logoyu kaldırıp inen logoyu kullanırsın. Logolar indikçe değişirken kullanıcı uygulamayı kullanmaya devam eder.

Merhaba. Evet onu yaparım. Liste her bir itemin kendi resmini sonradan yüklenmesini nasıl sağlaya bilirim onu düşünmem gerek.

kimimbenMantıklı bir öneri.
Hem internetten veri çekilmeyeceği için daha hızlı çalışacaktır.Hem de gereksiz yere vatandaşın interneti sömürülmeyecektir.

Merhaba. İndirme olayında bir klasör ayıracağım inen resmi tekrar indirmemesi için.

+1


Alıntı:Merhaba. İndirme olayında bir klasör ayıracağım inen resmi tekrar indirmemesi için.

Bunu çoğu kullanıcı istemiyor, yer kapladığı için, eğer fotoğraf boyutları küçük ise de indirdiğin klasör içerisine .nomedia dosyayı oluşturmayı unutma
WWW
Cevapla
#15
Daha önce yazdığım  PPL'i bir araştırın lütfen. Tam da ihtiyacınız olan şey. 
Sadece GetImage fonksiyonunuzu TTask içine atmanız bile yeterli olacaktır.(Synchronize'ye dikkat ederek)
http://docwiki.embarcadero.com/RADStudio...ng_Library
There's no place like 127.0.0.1
WWW
Cevapla
#16
(03-01-2017, Saat: 14:21)AliZairov Adlı Kullanıcıdan Alıntı:
(03-01-2017, Saat: 13:53)engerex Adlı Kullanıcıdan Alıntı: Logosu olmayanlara geçici logo atayın. Örneğin kanalın ilk 3 harfi. Logo zemin renkleri de birbirinden farklı olsun. Arka planda inen logo olursa geçici logoyu kaldırıp inen logoyu kullanırsın. Logolar indikçe değişirken kullanıcı uygulamayı kullanmaya devam eder.

Merhaba. Evet onu yaparım. Liste her bir itemin kendi resmini sonradan yüklenmesini nasıl sağlaya bilirim onu düşünmem gerek.

kimimbenMantıklı bir öneri.
Hem internetten veri çekilmeyeceği için daha hızlı çalışacaktır.Hem de gereksiz yere vatandaşın interneti sömürülmeyecektir.

Merhaba. İndirme olayında bir klasör ayıracağım inen resmi tekrar indirmemesi için.
Merhaba
İndirilen resmin tekrar indirilmemesi için, klasör içerisinde ki dosyanın varlığını mı kontrol edeceksiniz ?
One of the major software engineering challenges is managing change.
Cevapla
#17
(03-01-2017, Saat: 14:38)SimaWB Adlı Kullanıcıdan Alıntı: Daha önce yazdığım  PPL'i bir araştırın lütfen. Tam da ihtiyacınız olan şey. 
Sadece GetImage fonksiyonunuzu TTask içine atmanız bile yeterli olacaktır.(Synchronize'ye dikkat ederek)
http://docwiki.embarcadero.com/RADStudio...ng_Library

Bu sefer resmi bile indirmeden sadece listeyi ekledi.

procedure TDM.AddList(ListView: TListView; Query: TFDQuery);
var
 I: Integer;
 LItem: TListViewItem;
 aTask: ITask;
 MS: TMemoryStream;
 HTTP: THttpClient;
begin
 Application.ProcessMessages;
 ListView.Items.Clear;
 ListView.BeginUpdate;
 with Query do
 begin
   SQL.Clear;
   SQL.Text := 'Select * From channels';
   Open;
 end;
 Query.First;
 for I := 0 to Query.RecordCount - 1 do
 begin
   LItem := ListView.Items.Add;
   aTask := TTask.Create (procedure ()
   begin
     MS := TMemoryStream.Create;
     HTTP := THttpClient.Create;
     try
       MS.Seek(0, soFromBeginning);
       HTTP.Get(Query.FieldByName('image').Text, MS);
       LItem.Bitmap.LoadFromStream(MS);
     finally
       HTTP.Free;
       //MS.free
     end;
   end);
   aTask.Start;
   //LItem.Bitmap.LoadFromStream(getImage(Query.FieldByName('image').Text));
   LItem.Text := Query.FieldByName('name').Text;
   LItem.Detail := Query.FieldByName('code').Text;
   Query.Next;
 end;
 ListView.EndUpdate;
 Query.Active := False;
end;

(03-01-2017, Saat: 14:55)kimimben Adlı Kullanıcıdan Alıntı: Merhaba
İndirilen resmin tekrar indirilmemesi için, klasör içerisinde ki dosyanın varlığını mı kontrol edeceksiniz ?

Evet. Kanal isimlerinin kod ismi var. JSON parse ederken onlari da v.t aktariyorum. O isimle kontrol edecegim.
WWW
Cevapla
#18
(03-01-2017, Saat: 15:04)AliZairov Adlı Kullanıcıdan Alıntı:
(03-01-2017, Saat: 14:38)SimaWB Adlı Kullanıcıdan Alıntı: Daha önce yazdığım  PPL'i bir araştırın lütfen. Tam da ihtiyacınız olan şey. 
Sadece GetImage fonksiyonunuzu TTask içine atmanız bile yeterli olacaktır.(Synchronize'ye dikkat ederek)
http://docwiki.embarcadero.com/RADStudio...ng_Library

Bu sefer resmi bile indirmeden sadece listeyi ekledi.

procedure TDM.AddList(ListView: TListView; Query: TFDQuery);
var
 I: Integer;
 LItem: TListViewItem;
 aTask: ITask;
 MS: TMemoryStream;
 HTTP: THttpClient;
begin
 Application.ProcessMessages;
 ListView.Items.Clear;
 ListView.BeginUpdate;
 with Query do
 begin
   SQL.Clear;
   SQL.Text := 'Select * From channels';
   Open;
 end;
 Query.First;
 for I := 0 to Query.RecordCount - 1 do
 begin
   LItem := ListView.Items.Add;
   aTask := TTask.Create (procedure ()
   begin
     MS := TMemoryStream.Create;
     HTTP := THttpClient.Create;
     try
       MS.Seek(0, soFromBeginning);
       HTTP.Get(Query.FieldByName('image').Text, MS);
       LItem.Bitmap.LoadFromStream(MS);
     finally
       HTTP.Free;
       //MS.free
     end;
   end);
   aTask.Start;
   //LItem.Bitmap.LoadFromStream(getImage(Query.FieldByName('image').Text));
   LItem.Text := Query.FieldByName('name').Text;
   LItem.Detail := Query.FieldByName('code').Text;
   Query.Next;
 end;
 ListView.EndUpdate;
 Query.Active := False;
end;

Merhaba,
Döngü içerisinde oluşturduğunuz, aTask işlemi arka planda devam ederken, aynı zamanda döngü de işletiliyor. Bu durum mantıksal bir hataya neden oluyor.
Neden derseniz; ilk resim/logo indirilene kadar, işletilen döngü içerisinde LItem değişkeni defalarca eklenmiş oluyor.  Yani örnek vermek gerekirse; döngü 5. adımda iken ilk logoyu, 5. kayda ekler. 
Aslında olması gereken ListItem'lar eklendikten sonra yeni Thread işlemi ile logoları almak ve ListView'de güncelleme yapmak gerekiyor.
Ayrıca oluşturduğunuz her bir Item içinde veri tabanındaki Tv listesi Id'sini tutmalısınız. Bu durumda sonradan herhangi bir Item üzerinde rahatlıkla güncelleme (resim ekleme/düzenleme) yapabilirsiniz.
DelphiCan'dır!
Cevapla
#19
(03-01-2017, Saat: 15:22)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
Döngü içerisinde oluşturduğunuz, aTask işlemi arka planda devam ederken, aynı zamanda döngü de işletiliyor. Bu durum mantıksal bir hataya neden oluyor.
Neden derseniz; ilk resim/logo indirilene kadar, işletilen döngü içerisinde LItem değişkeni defalarca eklenmiş oluyor.  Yani örnek vermek gerekirse; döngü 5. adımda iken ilk logoyu, 5. kayda ekler. 
Aslında olması gereken ListItem'lar eklendikten sonra yeni Thread işlemi ile logoları almak ve ListView'de güncelleme yapmak gerekiyor.
Ayrıca oluşturduğunuz her bir Item içinde veri tabanındaki Tv listesi Id'sini tutmalısınız. Bu durumda sonradan herhangi bir Item üzerinde rahatlıkla güncelleme (resim ekleme/düzenleme) yapabilirsiniz.

Merhaba. Sistemi böyle tasarladım şuan.

1. Net kontrol ediyo ve json veriyi çekip parse yapıp v.t kayıt ediyo.
2. Listeyi v.t çağırıyo. Ben resimleride aynı yöntemle yapmak istedim ama resmi indirme olayı yüzünden baya kasmalar vardı.

Her program kapatıp açılırken bu işlemleri yapıyor. Veb ve mobil aynı yöntemle yapıyor işi. Vebde liste ekleniyor sonra resimlerde yükleniyor. Ve resimleri cache kayıt etdirdiğinden tekrar gerekmedikçe yüklenmiyor. Bu durum mobilde picasso kütüphanesi kullanarak yapıyor. Delphide böyle resim indirme olayı ilk yapmam gerekiyor sonra proeye dahil etmem gerekecek. Sizin id olayı her kanala mahsus kod ismi var onla yaparım diye düşünüyorum.
WWW
Cevapla
#20
(03-01-2017, Saat: 15:47)AliZairov Adlı Kullanıcıdan Alıntı: Merhaba. Sistemi böyle tasarladım şuan.

1. Net kontrol ediyo ve json veriyi çekip parse yapıp v.t kayıt ediyo.
2. Listeyi v.t çağırıyo. Ben resimleride aynı yöntemle yapmak istedim ama resmi indirme olayı yüzünden baya kasmalar vardı.

Her program kapatıp açılırken bu işlemleri yapıyor. Veb ve mobil aynı yöntemle yapıyor işi. Vebde liste ekleniyor sonra resimlerde yükleniyor. Ve resimleri cache kayıt etdirdiğinden tekrar gerekmedikçe yüklenmiyor. Bu durum mobilde picasso kütüphanesi kullanarak yapıyor. Delphide böyle resim indirme olayı ilk yapmam gerekiyor sonra proeye dahil etmem gerekecek. Sizin id olayı her kanala mahsus kod ismi var onla yaparım diye düşünüyorum.

Kod ismi dediğiniz değer, Integer ise TListViewItem.Tag özelliğine, metinsel bir değer ise TListViewItem.ButtonText özelliğine atayabilirsiniz.
DelphiCan'dır!
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Çözüldü _ Delphi Community Edition SDK ayarları hatası cinarbil 1 485 12-03-2026, Saat: 10:25
Son Yorum: damert6
  Webbrowser Sorunu [ÇÖZÜLDÜ] codder71 7 416 10-02-2026, Saat: 17:04
Son Yorum: codder71
  IOS FCM göndermek? [ÇÖZÜLDÜ] Mr.X 17 3.420 04-12-2024, Saat: 11:33
Son Yorum: shooterman
  Fmx Android - Termal Yazıcı Resim Yazdırma hi_selamlar 8 1.800 17-10-2024, Saat: 18:21
Son Yorum: esistem
  Android 33 api sdk güncelleme [ÇÖZÜLDÜ] codder71 15 4.079 14-07-2024, Saat: 09:11
Son Yorum: RAD Coder



Konuyu Okuyanlar: 1 Ziyaretçi