Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

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ı?
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
(03-10-2019, Saat: 12:24)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı?
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
(03-10-2019, Saat: 13:38)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(03-10-2019, Saat: 13:38)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(03-10-2019, Saat: 13:45)elixir84 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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
  ListView Checkbox select all seydigozegir@gmail.com 1 73 13-11-2019, Saat: 11:54
Son Yorum: Fesih ARSLAN
  ListView Multi Seçim hk. seydigozegir@gmail.com 2 164 08-11-2019, Saat: 15:36
Son Yorum: seydigozegir@gmail.com
  Android 9 - Network Bağlantı Hatası (ClearText) Fesih ARSLAN 5 301 26-10-2019, Saat: 08:38
Son Yorum: narkotik
  Listview refresh Kerembacioglu 3 225 03-10-2019, Saat: 11:20
Son Yorum: caoster
  IOS Provisioning hatası muratsenocak 4 297 01-10-2019, Saat: 23:06
Son Yorum: gonulali



Konuyu Okuyanlar: 1 Ziyaretçi