(03-01-2017, Saat: 16:12)AliZairov Adlı Kullanıcıdan Alıntı: (03-01-2017, Saat: 16:02)Fesih ARSLA Adlı Kullanıcıdan Alıntı: Kod ismi dediğiniz değer, Integer ise TListViewItem.Tag özelliğine, metinsel bir değer ise TListViewItem.ButtonText özelliğine atayabilirsiniz.
Tamam teşekkürler Fesih bey. Resim indirmeni çözeyim önce. Bu arada listede Thread bileşeni var. Bu bileşen thread işlemi kolay bir şekilde yapa bilirmiyim acaba?
Resim indirme işlemlerini yeni
Thread interface'leri (
Modern Object Pascal/Parallel Programming ) ile yapabilirsiniz. Bu yeni yapı ile komplex thread yapısı, daha anlaşılır ve sade hale getirilmiştir.
Sizin oluşturmak istediğiniz sisteme örnek vermek gerekirse;
procedure SetLogoIndirVeListeyiDuzenle();
var
thread: TThread;
begin
thread := TThread.CreateAnonymousThread(
procedure
var
Http: TIdHttp;
MS: TMemoryStream;
begin
MS := TMemoryStream.Create;
Http := TIdHttp.Create(nil);
try
try
Http.Get('http://www.delphican.com/images/duyuru/delphican.png',MS);
TThread.Synchronize(TThread.CurrentThread,
procedure()
begin
//ListView'de ilgili Id'yi bul ve bu Id'ye ait ImageListItem'a Assign işlemi yap.
end);
except
MS.Free;
end;
finally
Http.Free;
end;
end);
thread.start;
end;
Not: Metod'a logo linki ve Id değerlerini dinamik olarak gönderirsiniz.
Thread.start; satırından hemen önce kullanmış olduğum
thread.FreeOnTerminate := true; direktifi sildim. Bu metodun varsayılan değeri
True'imiş zaten. Uyarısı için
@SimaWB'e teşekkür ederim.
Öğretirken de öğreniyoruz.