![]() |
|
ListView veri doldurma problemi - 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ığı: ListView veri doldurma problemi (/showthread.php?tid=5768) |
ListView veri doldurma problemi - kornakamil - 03-03-2021 Soruların büyük kısmını açmışsamda Hala Listview veri doldurmayla ilgili sorunlarım devam ediyor. Aşağıda kodlarını verdiğim işlemde Table kayıtsayısı 3680 Listview doldurduktan sonra Saydırdığımda Listview satır sayısı 3680 Fakat 5 işlemden üçünde Listviewde tüm kayıtların tamamının yüklenmediğini görüyorum. 1000-1500 kayıttan sonrasına Listviewde göremiyorum . Listview PullRefreshWait - PulltoRefresh ayarları True ListViewDATA.Items.Clear;
TThread.CreateAnonymousThread(
procedure()
Var
Litem : TListViewItem;
begin
TThread.Synchronize(nil,
procedure()
begin
toast('BAŞLADI..');
end);
try
// Yerel Veritabanı Bağlanmaya Çalış
try
DATAConnection.Connected := True;
except
toast('Yerel veritabanı bağlantısı sağlanamadı !!');
exit
end;
// Özlük Tablosundaki verileri Yükle
try
DATAData.Open; //özlük tablosu
DATAData.First;
ListViewDATA.BeginUpdate;
while not DATAData.Eof do
begin
Litem :=ListViewDATA.Items.Add;
Litem.Data['Text1'] := DATAData.FieldByName('Ad').AsString+
' '+DATAData.FieldByName('Soyad').AsString;
if Length(DATAData.FieldByName('Gsm1').Value) >= 10 then
LItem.Data['Image4'] := 7;
DATAData.Next;
end;
ListViewDATA.EndUpdate;
KayitSayisi.Text := DATAData.RecordCount.ToString;
toast (ListViewDATA.Items.Count.ToString);
except
toast('Dosya SQL Hatası var !!');
exit
end;
finally
TThread.Synchronize(nil,
procedure()
begin
toast('BİTTİ..');
end);
end;
end).Start;
Kodlar ana hatlarıyla bu şekilde .. Umarım anlaşılır bir şekilde ifade edebilmişimdir. Yardımlarınız için şimdiden teşekkürler. Tüm Delphican ailesine Saygılar. ListView veri doldurma problemi - mrmarman - 03-03-2021 1500 kayıt thread ile yükleniyor, hatayı algılayabilmek için geçici olarak thread dışından standart yükleme yapın. Testinizin sonucu size, veritabanından çekerken hata olur da thread çökerse durumu olmuşsa bunu thread dışından algılamanızı sağlar. Veri akışı sırasında ağ kopması yaşanıyor olabilir mi onu da inceleme altına alın. Ayrıca mobil işlemler için araya datasnap katmanı koymak isteyebilirsiniz. Böylece xml/soap fark etmez veri bloğu daha kümülatif alınacağından ağ içinde bekleme en aza incek sağlıklı transfer sağlanmış olacaktır. Cvp: ListView veri doldurma problemi - SimaWB - 03-03-2021 (03-03-2021, Saat: 03:37)kornakamil Adlı Kullanıcıdan Alıntı: Soruların büyük kısmını açmışsamda Dikkat: ListViewDATA'da değişikliği farklı bir thread içinden yapıyorsunuz! UI üzerinde yapacağınız değişiklikleri TThread.Synchronize içinde yapmalısınız. Cvp: ListView veri doldurma problemi - kornakamil - 03-03-2021 (03-03-2021, Saat: 11:17)mrmarman Adlı Kullanıcıdan Alıntı: 1500 kayıt thread ile yükleniyor, hatayı algılayabilmek için geçici olarak thread dışından standart yükleme yapın. thread dışı yüklemede kayıtlar sorunsuz yükleniyor. Onun testini yaptım . Saygılar Cvp: ListView veri doldurma problemi - kornakamil - 03-03-2021 (03-03-2021, Saat: 12:08)SimaWB Adlı Kullanıcıdan Alıntı: Dikkat: ListViewDATA'da değişikliği farklı bir thread içinden yapıyorsunuz! TThread.Synchronize içine alınca liste doldurma problemi çözüldü.. TThread içinde harici bileşen kullanmanın sonucu olarak kasılma meydana geldi. Çözüm daha önceki üsadın belirttiği gibi nesneleri TTheread içinde yaratmak mümkün olduğunca harici bileşen kullanmamak. O kısım üzerinde çalışacağım . Teşekkürler |