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.
(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.
(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.
(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
(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 ?
(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.
(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.
(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.
(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.