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ı: 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
  procedure bilgi alma ekank 4 424 29-03-2020, Saat: 00:47
Son Yorum: ekank
  Firebase Uygulama Kapalı İken Gelen Bildirimdeki Verileri Alma ahmet6513 3 807 02-01-2020, Saat: 10:57
Son Yorum: Fesih ARSLAN
  Seçili satırı ayrı, ayrı çıktı alma BGNew 0 313 19-12-2019, Saat: 21:53
Son Yorum: BGNew
  Delphi fmx ile Play store uygulama içi satın alma işlemi crowlin 2 742 27-09-2019, Saat: 23:07
Son Yorum: crowlin
  Corner buton üzerinde image run time da görünmüyor 41linea41 1 489 20-09-2019, Saat: 08:37
Son Yorum: hi_selamlar



Konuyu Okuyanlar: 1 Ziyaretçi