Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Image Index numarasını alma
#1
Merhaba; 

Listviewden text bilgilerini döngü ile alıyorum. Fakat liistviewdeki image indexsini almak istediğimde aşağıdaki hatayı veriyor.
Çözüm olarak nasıl bir yol izlemeliyim?

[dcc32 Warning] Default.pas(288): W1019 For loop control variable must be simple local variable
[dcc32 Warning] Default.pas(414): W1019 For loop control variable must be simple local variable
[dcc32 Fatal Error] KitapListesi.dpr(14): F2063 Could not compile used unit 'Default.pas'


   
 begin
            for B := 0 to AItem.Objects.Count - 1 do
            begin
              Memo2.Lines.Add(IntToStr(AItem.Objects([B]).ImageObject.ImageIndex));
  
              AddList.Add(AItem.Objects[B].Data.AsString);
            end;
Cevapla
#2
Merhaba,
ListView elemanının Objects değerine (bu değer TListViewItemObjects tipindedir), AItem.Objects([B]) kullanım yöntemiyle ulaşamazsınız.
Aşağıdaki kod satırında AItem.Objects([B]) tipinin, image Item tip olup olmadığı kontrol edilmelidir.
 Memo2.Lines.Add(IntToStr(AItem.Objects([B]).ImageObject.ImageIndex));
Aksi durumda text, heade, footer, Accessory gibi tüm elemanların image index değerine ulaşmaya çalışacaktır. Bu elemanların image index değeri olmadığı için çalışma anında (şu anki almış olduğunuz hata; tip dönüşümünün yanlış kullanımından kaynaklanıyor) hata oluşma ihtimali yüksektir.
Bunun için eleman tipi aşağıdaki gibi kontrol edildikten sonra, zorunlu tip dönüşümü yapılmalıdır.
        if AItem.Objects[B] is TListItemImage then
        begin
          imgindeks := TListItemImage(AItem.Objects[B]).ImageIndex;
          Memo2.Lines.Add(imgindeks.ToString);
        end;
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
(24-09-2018, Saat: 02:40)ahmetb 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; 

Listviewden text bilgilerini döngü ile alıyorum. Fakat liistviewdeki image indexsini almak istediğimde aşağıdaki hatayı veriyor.
Çözüm olarak nasıl bir yol izlemeliyim?

[dcc32 Warning] Default.pas(288): W1019 For loop control variable must be simple local variable
[dcc32 Warning] Default.pas(414): W1019 For loop control variable must be simple local variable
[dcc32 Fatal Error] KitapListesi.dpr(14): F2063 Could not compile used unit 'Default.pas'


   
 begin
            for B := 0 to AItem.Objects.Count - 1 do
            begin
              Memo2.Lines.Add(IntToStr(AItem.Objects([B]).ImageObject.ImageIndex));
  
              AddList.Add(AItem.Objects[B].Data.AsString);
            end;

B değişkenini nerede tanımladınız ?
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#4
@Fesih ARSLAN
Teşekkür ederim. 
Dediğiniz gibi  image Item tipini kontrol ederek çözdüm, Allah razı olsun.


@Tuğrul HELVACI
B değişkenini sadece aynı procedure altında kullanıyorum.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi fmx ile Play store uygulama içi satın alma işlemi crowlin 2 183 27-09-2019, Saat: 23:07
Son Yorum: crowlin
  Corner buton üzerinde image run time da görünmüyor 41linea41 1 104 20-09-2019, Saat: 08:37
Son Yorum: hi_selamlar
  Invalid imagelist index hido 10 1.613 11-08-2019, Saat: 16:18
Son Yorum: uzanet
  ClientDataSet image field yükleme (DataSnap) 41linea41 3 301 22-07-2019, Saat: 08:13
Son Yorum: Fesih ARSLAN
  Resimi spinner yada image combo box da gösterme 41linea41 1 163 18-07-2019, Saat: 21:28
Son Yorum: narkotik



Konuyu Okuyanlar: 1 Ziyaretçi