Listwiev yada Listboxta veri sayma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Listwiev yada Listboxta veri sayma

Mesaj gönderen ALUCARD »

Arkadaşlar Merhaba;

Alttaki resimde de görüldüğü gibi bir listboxum var.

Resim

İçinde bir sütünda "Okunmuş" yada "Okunmamış" yazıyor benim bınları saymam gerekiyor.

Saymak için aşağıdaki kodu kullanıyorum ama neden se saymıyor.

Kod: Tümünü seç

procedure TForm1.SpeedButton6Click(Sender: TObject);
VAR
okunmus,okunmamis,i, sayi : integer;
begin
sayi := ListView1.Items.Count ;

try
if (sayi > 0)  then
begin
okunmus := 0;
okunmamis := 0 ;
ListBox1.Clear;
for i:= 0 to ListView1.Items.Count do
begin




IF  ListView1.Items.Item[i].SubItems.Strings[3] = 'Okunmuş' then begin okunmus := okunmus + 1 end;

IF  ListView1.Items.Item[i].SubItems.Strings[3] = 'Okunmamış' then begin okunmamis := okunmamis + 1 end;

end;
ShowMessage(inttostr(okunmus));
Label2.Caption := 'Okunmuş Kayıt Sayısı  : '+ inttostr(okunmus);
label3.Caption := 'Okunmamış Kayıt Sayısı : '+inttostr(okunmamis);
end;
except
end;
ben bunları lisbox'a alabiliyorum ama onuda sayamıyorum.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Listwiev yada Listboxta veri sayma

Mesaj gönderen brs »

İşine Yaramı bilemiyorum en azından fikir verebilir...


Kod: Tümünü seç

procedure TForm9.Button1Click(Sender: TObject);
var
dogru,yanlis:integer;
begin
dogru := 0;
yanlis := 0;
Form1.YayinPlayListADOQuery1.first;
while not Form1.YayinPlayListADOQuery1.eof do
begin
if Form1.YayinPlayListADOQuery1.FieldByName('ICERIK').AsString= 'Spot' then
inc(dogru)
else
inc(yanlis);
Form1.YayinPlayListADOQuery1.next;
end;
Showmessage(inttostr(dogru)+' Doğru ve' +inttostr(yanlis)+' Yanlış cevap vardır');
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Listwiev yada Listboxta veri sayma

Mesaj gönderen G.Arkas »

Denememekle beraber asagidaki sekilde listview in OnCustomDrawItem eventinde denermisiniz.

Kod: Tümünü seç

var
i:integer=0;
begin
if item.Subitem[3] = 'okunmus' then
i:= i+1;
test etmedim. Telefondan yaziyorum. :wink:
Resim
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: Listwiev yada Listboxta veri sayma

Mesaj gönderen ALUCARD »

G.Arkas yazdı:Denememekle beraber asagidaki sekilde listview in OnCustomDrawItem eventinde denermisiniz.

Kod: Tümünü seç

var
i:integer=0;
begin
if item.Subitem[3] = 'okunmus' then
i:= i+1;
test etmedim. Telefondan yaziyorum. :wink:

olmadı hocam malesef
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Listwiev yada Listboxta veri sayma

Mesaj gönderen xozcanx »

Merhaba;
Aşağıdaki kodu deneyebilir misiniz.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
a,b,i:integer;
begin
  a:=0; b:=0; i:=0;
  for i:=0 to ListView1.Items.Count-1 do
  Begin
    if ListView1.Items.Item[i].SubItems[3]= 'okundu'  then
    a:=a+1;
    if ListView1.Items.Item[i].SubItems[3] = 'okunmadı' then
    b:=b+1;
  End;
  Label1.Caption:=IntToStr(a);
  Label2.Caption:=IntToStr(b);
end;
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Listwiev yada Listboxta veri sayma

Mesaj gönderen unicorn64 »

koda breakpoint koyup ListView1.Items.Item.SubItems.Strings[3] değerini kontrol ettiniz mi?
listviewde width değeri 0 olan sütun var mı?
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: Listwiev yada Listboxta veri sayma

Mesaj gönderen ALUCARD »

xozcanx yazdı:Merhaba;
Aşağıdaki kodu deneyebilir misiniz.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
a,b,i:integer;
begin
  a:=0; b:=0; i:=0;
  for i:=0 to ListView1.Items.Count-1 do
  Begin
    if ListView1.Items.Item[i].SubItems[3]= 'okundu'  then
    a:=a+1;
    if ListView1.Items.Item[i].SubItems[3] = 'okunmadı' then
    b:=b+1;
  End;
  Label1.Caption:=IntToStr(a);
  Label2.Caption:=IntToStr(b);
end;
teşekkürler hocam çalıştı.
unicorn64 yazdı:koda breakpoint koyup ListView1.Items.Item.SubItems.Strings[3] değerini kontrol ettiniz mi?
listviewde width değeri 0 olan sütun var mı?


sütundaki değeri mesajbox ile alabiliyorsum hocam onu denemiştim ama yinede sağol
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Cevapla