Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Listview argument out of range hatası
#1
Merhaba,

Android de ürünlerin veya müşterilerin listeleneceği ekran yapmak istiyorum Rehber gibi arama olacak. Listview e item.add le eklemeleri yapıyorum. Ürün veya Müşteri veya ürün sayısı çok olduğu için hepsini eklemiyorum onun için searchbox kullanamıyorum. Arama kısımı kendim yaptığım içinde her aramadan sonra ListView.Items.Clear ile boşaltıp tekrar yeni değerleri dolduruyorum 3-4 arama sonra argument out of range hatası veriyor. 

Bu gibi rehberlik durumları nasıl çözdünüz. listview değilde başka bişey mi kullanmam gerekiyor.

Not : Müşteri Satısı 1950 Ürün Sayısı 13544
Cevapla
#2
Merhaba,
LisrView üzerindeki arama kutucuğu, var olan kayıtlar arasında arama yapıyor. Dolayısıyla sizin tercih ettiğiniz yöntem daha doğrudur.
Yani arama işleminden sonra yeni bir liste oluşturulmalı ve arayüze bu yeni kayıt listesi yansıtılmalıdır.
Hataya sebep olan durum; clear işleminden sonra ListView item'a erişme isteğinizdir. 
Kod satırlarını yeniden gözden geçirmenizde fayda var. 
ListView üzerinde kayıtları göstermeden önce BeginUpdate, işleminiz bittikten sonra da EndUpdate kullandınız mı?
Cevapla
#3
(03-10-2019, Saat: 12:24)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
LisrView üzerindeki arama kutucuğu, var olan kayıtlar arasında arama yapıyor. Dolayısıyla sizin tercih ettiğiniz yöntem daha doğrudur.
Yani arama işleminden sonra yeni bir liste oluşturulmalı ve arayüze bu yeni kayıt listesi yansıtılmalıdır.
Hataya sebep olan durum; clear işleminden sonra ListView item'a erişme isteğinizdir. 
Kod satırlarını yeniden gözden geçirmenizde fayda var. 
ListView üzerinde kayıtları göstermeden önce BeginUpdate, işleminiz bittikten sonra da EndUpdate kullandınız mı?

 ListView1.Items.Clear;
 ListView1.BeginUpdate;
 while not Query.Eof do
   begin
     LItem := ListView1.Items.Add;
     LItem.Data['Text1'] := Query.FieldByName('CARI_KOD').AsString;
     LItem.Data['Text2'] := Query.FieldByName('CARI_ISIM').AsString;
     LItem.Data['Text3'] := Query.FieldByName('CARI_ADRES').AsString;
     Query.Next;
   end;
 ListView1.EndUpdate;

Evet Kullandım.
Cevapla
#4
Hatayı bu kod satırlarında vermesi normal değil. 
ListView'in herhangi bir event'ını kullandınız mı?
Cevapla
#5
(03-10-2019, Saat: 13:38)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Hatayı bu kod satırlarında vermesi normal değil. 
ListView'in herhangi bir event'ını kullandınız mı?

Hayır uygulama yeni proje olarak düşünün sadece test ediyorum. Yeni uyulama için sizi bekliyorum OrangeUI bileşenini.  Listview -> CanSwipeDelete ->False yaptım hata azaldı gibi sadece 1 defa verdi şimdilik.
Cevapla
#6
(03-10-2019, Saat: 13:45)elixir84 Adlı Kullanıcıdan Alıntı:
(03-10-2019, Saat: 13:38)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Hatayı bu kod satırlarında vermesi normal değil. 
ListView'in herhangi bir event'ını kullandınız mı?

Hayır uygulama yeni proje olarak düşünün sadece test ediyorum. Yeni uyulama için sizi bekliyorum OrangeUI bileşenini.  Listview -> CanSwipeDelete ->False yaptım hata azaldı gibi sadece 1 defa verdi şimdilik.

Bu hata ile daha önce hiç karşılaşmadım. İlginç bir durum. Aslında Items.Clear ile birlikte, CanSwipeDelete anlamını yitirmiş oluyor. Kullandığınız Delphi sürümünde Bug olma ihtimali yüksek.  
Bu haftaki eğitimde OrangeUI bileşen setlerine giriş yapıyoruz. OrangeUI functionları ile frame yönetimi, kullanıcı giriş ekranı ve ana frame tasarımını yapıyoruz. 
(Üzücü bir haber  Sad ) ListView veya ListBox bileşenine bu hafta değinmiyoruz. Bu bileşenlerle 12 Ekim tarihindeki seminerde çalışma yapacağız.
Cevapla
#7
Merhaba öncelikle Clear işlemini de begin update işlemine alıp denermisiniz.
Ayrıca
search işlemini kendi editinizde yapıyorsanız,
başlamadan önce
OnChangeTracking := nil;
işlem bittikten sonra
OnChangeTracking := Event;
şeklinde yaparmısınız
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#8
(03-10-2019, Saat: 13:57)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(03-10-2019, Saat: 13:45)elixir84 Adlı Kullanıcıdan Alıntı: Hayır uygulama yeni proje olarak düşünün sadece test ediyorum. Yeni uyulama için sizi bekliyorum OrangeUI bileşenini.  Listview -> CanSwipeDelete ->False yaptım hata azaldı gibi sadece 1 defa verdi şimdilik.

Bu hata ile daha önce hiç karşılaşmadım. İlginç bir durum. Aslında Items.Clear ile birlikte, CanSwipeDelete anlamını yitirmiş oluyor. Kullandığınız Delphi sürümünde Bug olma ihtimali yüksek.  
Bu haftaki eğitimde OrangeUI bileşen setlerine giriş yapıyoruz. OrangeUI functionları ile frame yönetimi, kullanıcı giriş ekranı ve ana frame tasarımını yapıyoruz. 
(Üzücü bir haber  Sad ) ListView veya ListBox bileşenine bu hafta değinmiyoruz. Bu bileşenlerle 12 Ekim tarihindeki seminerde çalışma yapacağız.

Sorun değil beklerim yardımlarınız için teşekkürler.

(03-10-2019, Saat: 14:10)narkotik Adlı Kullanıcıdan Alıntı: Merhaba öncelikle Clear işlemini de begin update işlemine alıp denermisiniz.
Ayrıca
search işlemini kendi editinizde yapıyorsanız,
başlamadan önce
OnChangeTracking := nil;
işlem bittikten sonra
OnChangeTracking := Event;
şeklinde yaparmısınız

Deneyeyim dönüş yaparım.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Google play Uygulama yükleme hatası [Çözüldü] codder71 3 366 23-02-2024, Saat: 22:42
Son Yorum: codder71
  Delphi 12 Boş Form Derleme Hatası [Çözüldü] codder71 4 539 21-02-2024, Saat: 22:09
Son Yorum: codder71
  (ÇÖZÜLDÜ - Kısmen) D11 Mobile SDK gönderim hatası shooterman 13 1.322 06-12-2023, Saat: 23:56
Son Yorum: 3ddark
  Open failed: ENOENT (no such file or directory) hatası kajmerantime 0 273 01-12-2023, Saat: 10:07
Son Yorum: kajmerantime
  FMX Listview Image Sorunu [ÇÖZÜLDÜ] Mesut 1 331 20-10-2023, Saat: 15:03
Son Yorum: Mesut



Konuyu Okuyanlar: 1 Ziyaretçi