Tlistview'de Itemleri disable yapmak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Tlistview'de Itemleri disable yapmak.

Mesaj gönderen neu84 »

S.a arkadaşlar,
1- Listview de checkboxlı itemlerim var, çoklu seçim yapıcam ve o seçili değerleri almam gerek, ilk sütündaki değerler çekmek istiyorum ancak ulaşamadım o değerlere. Öneriniz nedir?
2- Birde listview de değerler var, tümü diye de bi değer olacak, tümü ne tıkladığımda diger checkboxların enableının false olmasını istiyorum ve ne yazıkki bunada ulaşamdım bir türlü. Öneriniz nedir? Ne şekilde yazmam gerekki şu enable denilen şeye ulaşayımda gerekli itemlerin enable ını false yada true yapayım?


1. soru için..Bunu denedim ancak boş gösteriyor mesajkutusunu.

Kod: Tümünü seç

if(ListView1.Items[0].Checked)then
  begin
    ShowMessage(listview1.items[0].SubItems.CommaText);
  end;
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: Tlistview'de Itemleri disable yapmak.

Mesaj gönderen adnansirca »

1-

Kod: Tümünü seç

 var
i:integer;
begin
for i:=0 to listview1.items.Count-1 do
begin
if Listview1.Items[i].Checked then
ShowMessage(listview1.items[i].SubItems.CommaText);
end;
2-

Kod: Tümünü seç

var
i:Integer;
begin
for i:=0 to listview1.items.Count-1 do
begin
if Listview1.Items[i].Checked then
ListView1.Items[i].Checked := False;
end; 
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Tlistview'de Itemleri disable yapmak.

Mesaj gönderen unicorn64 »

listviewde ilk sütuna caption üzerinden erişirsiniz...

Kod: Tümünü seç

showmessage(listview1.items[i].caption);               // 1. sütun
showmessage(listview1.items[i].subitems[0].text);  // 2. sütun
showmessage(listview1.items[i].subitems[1].text);  // 3. sütun


with listview1.items.add do
begin
  caption:= inttostr(listview1.items.count);  // ilk sütuna sıra numarası yazalım...
  subitems.add('2. sütun değeri');
  subitems.add('3. sütun değeri');
end;
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
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Tlistview'de Itemleri disable yapmak.

Mesaj gönderen neu84 »

@unicorn64 , @adnansirca
İkinizede ayrı ayrı teşekkür ederim, çok sagolun arkadaşlar...
neu84
Üye
Mesajlar: 307
Kayıt: 06 Oca 2011 11:27

Re: Tlistview'de Itemleri disable yapmak.

Mesaj gönderen neu84 »

@adnansirca

Söylediğiniz yolu denedim, oluyor ancak adı Tümü olan item i seçince diğerlerinin checked i ni false yapınca, Tümü'nün tikini kaldırmadığım sürece diğerlerini tikleyemiyorum. Adı Tümü olanı tikleyince digerlerinin hepsinin tiki kalkacak, adı Tümü olan tikli iken, digerlerinden herhangi birine tıklayınca da adı Tümü olanın tiki kalkması lazım. ancak digerlerinden False yaptıklarımı seçemiyorum Tümü tikli iken. Ne önerirsiniz
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Re: Tlistview'de Itemleri disable yapmak.

Mesaj gönderen adnansirca »

ListView Onclick olayına aşağıdaki kodu deneyin.

Kod: Tümünü seç

Var
  i : Integer;
begin
  if ListView1.Selected.Caption = 'Tümü' then begin
    for i := 0 to ListView1.Items.Count - 1
      do ListView1.Items[i].Checked := False;
    if ListView1.Selected.Caption = 'Tümü' then
    ListView1.Selected.Checked := True
    else
    ListView1.Selected.Checked := False;
  end
  else
  for i:=0 to listview1.items.Count-1 do
  begin
  ListView1.Items[i].Checked;
  if ListView1.Items[i].Caption = 'Tümü' then
    ListView1.Items[i].Checked:= False  ;
   //ListView1.Selected.Checked := True;
end;
  
ListView MouseDown

Kod: Tümünü seç

 if ListView1.GetHitTestInfoAt(X, Y) = [htOnStateIcon] then // Check Yapılmış
    ListView1.Selected := ListView1.GetItemAt(X,Y); // Zaten seçilince otomatik yukardaki OnClick yordamı tetiklenir.
 
İyi çalışmalar.
Cevapla