Delphi Can
ListView - CheckBox Kullanmak - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Eğitim (https://www.delphican.com/forumdisplay.php?fid=19)
+---- Forum: Makale (https://www.delphican.com/forumdisplay.php?fid=20)
+---- Konu Başlığı: ListView - CheckBox Kullanmak (/showthread.php?tid=301)

Sayfalar: 1 2


ListView - CheckBox Kullanmak - Fesih ARSLAN - 17-10-2016

Merhaba; 
FireMonkey mimarisinde ListView nesnesiyle tek veya çoklu seçimler yaparak, toplu işlem yapmayı sağlayabilirsiniz. Bunun için ListView'in  EditMode özelliği kullanılmaktadır. 
ListView'in CheckBox (seçim) özelliğini kullanmak için Formun OnCreate olayına aşağıdaki kodu yazmanız yeterlidir.

ListView1.EditMode := True;

Bu kodu herhangi bir olaya bağlayarak istediğiniz zamanda etkin olmasını da sağlayabilirsiniz.

Örneğin;

procedure TForm1.Button1Click(Sender: TObject);
var
 I: Integer;
 LItem: TListViewItem;
begin
 ListView1.Items.Clear;
 ListView1.BeginUpdate;
 for I := 1 to 10 do
 begin
   LItem := ListView1.Items.Add;
   LItem.Data['Text1'] := I.ToString() + '. Kayıt'; //DynamicAppearance kullanıyorsanız, Normal Text için ise ---> LItem.Text := I.ToString() + '. Kayıt'; kullanın
 end;
 ListView1.EndUpdate;
 ListView1.EditMode := True;
end;

LvCh1.png

Seçimli olan veya olmayan kayıtların tespitini yapmak için TListViewItem'ın Checked özelliği kullanılmaktadır. 
Aşağıda bir örnekle Cheked özelliğinin kullanımı örneklendirilmiştir.

procedure TForm2.SpeedButton2Click(Sender: TObject);
var
 I: Integer;
begin
 Memo1.Lines.Clear;
 for I := 0 to ListView1.Items.Count - 1 do
 begin
   with ListView1.Items[i] do
   begin
     if Checked = True then
       Memo1.Lines.Add((I + 1).ToString() + '. Kayıt Seçili')
     else
       Memo1.Lines.Add((I + 1).ToString() + '. Kayıt Maalesef Seçili Değil!')
   end;
 end;
end;

LvCh2.png

Seçim işlemi ListView'in doğal özelliği olan EditMode ile yapılabildiği gibi GlyphButton ile de yapılabilmektedir.

Örnekte ListView EditMode ve GlyphButton Checked modu ayrı ayrı test edilmiştir.
Ayrı butonlarda tüm Item'lar checked durumuna alınmış ve yine ayrı bir butonda Checked durumları Memo'da gösterilmiştir.

Ekran Görüntüsü:

LvCh3.gif

Örnek Uygulama Linkleri:

EditMode Örneği

EditMode ve GlyphButton Örneği


ListView - CheckBox Kullanmak - hassur - 17-10-2016

şarta bağlı renklendirme yapabilirmiyiz,imagelistten resim nasıl ekleriz


Cvp: ListView - CheckBox Kullanmak - Fesih ARSLAN - 17-10-2016

(17-10-2016, Saat: 15:15)hassur Adlı Kullanıcıdan Alıntı: şarta bağlı renklendirme yapabilirmiyiz,imagelistten resim nasıl ekleriz

Merhaba,
ListView Item'larını oluşturduğunuz method içerisine bir koşul ekleyerek yapabilirsiniz. Renklendirme işlemi için Item'ın TextColor özelliğini set etmeniz yeterli olacaktır.

Yukarıdaki örnekten yola çıkacak olursak; Item ekleme anında bu durum kontrol edilmelidir.
Örneğin;
    
if i = 3 then
  ListView1.Items[i-1].Objects.TextObject.TextColor := TAlphaColors.Red;
 
yada 
    
if LItem.Text='3. Kayıt' then
  ListView1.Items[i-1].Objects.TextObject.TextColor := TAlphaColors.Red;
 

Metod içerisinde;

procedure TForm2.SpeedButton1Click(Sender: TObject);
var
 I: Integer;
 LItem: TListViewItem;
begin
 ListView1.Items.Clear;
 ListView1.BeginUpdate;
 for I := 1 to 10 do
 begin
   LItem := ListView1.Items.Add;
   LItem.Text := I.ToString() + '. Kayıt';
   if i = 3 then
     ListView1.Items[i-1].Objects.TextObject.TextColor := TAlphaColors.Red;
 end;
 ListView1.EndUpdate;
 ListView1.EditMode := True;
end;

LvCh4.png

(17-10-2016, Saat: 15:15)hassur Adlı Kullanıcıdan Alıntı: şarta bağlı renklendirme yapabilirmiyiz,imagelistten resim nasıl ekleriz

Merhaba,
ImageList kullanımı ile ilgili örnek bir makale;  ListView - ImageList Icon Almak


ListView - CheckBox Kullanmak - engerex - 12-05-2018

image.png
Edit Mode aktif edince tasarım şekil değiştiriyor. Tasarımda da, çalışma esnasında da aynı.


Cvp: ListView - CheckBox Kullanmak - Fesih ARSLAN - 12-05-2018

(12-05-2018, Saat: 13:03)engerex Adlı Kullanıcıdan Alıntı: image.png
Edit Mode aktif edince tasarım şekil değiştiriyor. Tasarımda da, çalışma esnasında da aynı.

Merhaba,
ListView bileşeni yalnızca bir listenin gösterimi için kullanılacaksa (DynamicAppearance görüntüleme tipinde) Toggle DesignMode özelliği ile tasarımı yapılır. ListView'in Edit özelliği kullanıldığında da Toggle EditMode ile bir düzenleme tasarımı yapılmalıdır.
Aksi duruma varsayılan bir tasarım sunmaktadır.


ListView - CheckBox Kullanmak - narkotik - 12-05-2018

Teşekkürler.


ListView - CheckBox Kullanmak - engerex - 18-05-2018

(12-05-2018, Saat: 13:55)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(12-05-2018, Saat: 13:03)engerex Adlı Kullanıcıdan Alıntı: image.png
Edit Mode aktif edince tasarım şekil değiştiriyor. Tasarımda da, çalışma esnasında da aynı.

Merhaba,
ListView bileşeni yalnızca bir listenin gösterimi için kullanılacaksa (DynamicAppearance görüntüleme tipinde) Toggle DesignMode özelliği ile tasarımı yapılır. ListView'in Edit özelliği kullanıldığında da Toggle EditMode ile bir düzenleme tasarımı yapılmalıdır.
Aksi duruma varsayılan bir tasarım sunmaktadır.

Merhaba,
İşin Toggle EditMode kısmında kalmıştım. Çünkü tasarımsal sorun vardı. EditMode aldığımda tasarım kısmı tepkisiz kalıyordu. Herhangi bir nesne ekleyemiyordum. Yada eklemişsem boyutlarıyla ve konumlarıyla oynayamıyordum.Görsel olarak hiç bir değişiklik olmuyordu. Bende işe yaramadığını düşünüyor ve sorunu başka yerlerde arıyordum. Farkettim ki görsel bir değişiklik yaptığımda kod ekranına geçip tekrar tasarım ekranına döndüğümde yaptığım görsel değişiklik uygulanmış. Görsel bir değişikli yapıyoyorum, kod ekranına girip dizayna dönüyorum ve uygulanmış Smile Bir değer girmek yada fare ile boyutları değiştirmek bir işe yaramıyordu.
Sizin konuyla ilgili örneğinizi incelediğimde bunu farkettim. Çünkü sizin projede bu sorunla karşılaşmadım.


ListView - CheckBox Kullanmak - ahmetb - 07-09-2018

(17-10-2016, Saat: 14:48)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba; 
FireMonkey mimarisinde ListView nesnesiyle tek veya çoklu seçimler yaparak, toplu işlem yapmayı sağlayabilirsiniz. Bunun için ListView'in  EditMode özelliği kullanılmaktadır. 
ListView'in CheckBox (seçim) özelliğini kullanmak için Formun OnCreate olayına aşağıdaki kodu yazmanız yeterlidir.

ListView1.EditMode := True;

Bu kodu herhangi bir olaya bağlayarak istediğiniz zamanda etkin olmasını da sağlayabilirsiniz.

Örneğin;

procedure TForm1.Button1Click(Sender: TObject);
var
 I: Integer;
 LItem: TListViewItem;
begin
 ListView1.Items.Clear;
 ListView1.BeginUpdate;
 for I := 1 to 10 do
 begin
   LItem := ListView1.Items.Add;
   LItem.Data['Text1'] := I.ToString() + '. Kayıt'; //DynamicAppearance kullanıyorsanız, Normal Text için ise ---> LItem.Text := I.ToString() + '. Kayıt'; kullanın
 end;
 ListView1.EndUpdate;
 ListView1.EditMode := True;
end;

LvCh1.png

Seçimli olan veya olmayan kayıtların tespitini yapmak için TListViewItem'ın Checked özelliği kullanılmaktadır. 
Aşağıda bir örnekle Cheked özelliğinin kullanımı örneklendirilmiştir.

procedure TForm2.SpeedButton2Click(Sender: TObject);
var
 I: Integer;
begin
 Memo1.Lines.Clear;
 for I := 0 to ListView1.Items.Count - 1 do
 begin
   with ListView1.Items[i] do
   begin
     if Checked = True then
       Memo1.Lines.Add((I + 1).ToString() + '. Kayıt Seçili')
     else
       Memo1.Lines.Add((I + 1).ToString() + '. Kayıt Maalesef Seçili Değil!')
   end;
 end;
end;

LvCh2.png

Seçim işlemi ListView'in doğal özelliği olan EditMode ile yapılabildiği gibi GlyphButton ile de yapılabilmektedir.

Örnekte ListView EditMode ve GlyphButton Checked modu ayrı ayrı test edilmiştir.
Ayrı butonlarda tüm Item'lar checked durumuna alınmış ve yine ayrı bir butonda Checked durumları Memo'da gösterilmiştir.

Ekran Görüntüsü:

LvCh3.gif

Örnek Uygulama Linkleri:

EditMode Örneği

EditMode ve GlyphButton Örneği

Merhaba;
Listviewde satırı tıklayınca checkbox true veya false oluyor. Sadece checkboxsı tıklayınca true veya false olmasını nasıl sağlarım?


Cvp: ListView - CheckBox Kullanmak - Fesih ARSLAN - 07-09-2018

(07-09-2018, Saat: 09:14)ahmetb Adlı Kullanıcıdan Alıntı:
(17-10-2016, Saat: 14:48)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba; 
FireMonkey mimarisinde ListView nesnesiyle tek veya çoklu seçimler yaparak, toplu işlem yapmayı sağlayabilirsiniz. Bunun için ListView'in  EditMode özelliği kullanılmaktadır. 
ListView'in CheckBox (seçim) özelliğini kullanmak için Formun OnCreate olayına aşağıdaki kodu yazmanız yeterlidir.

ListView1.EditMode := True;

Bu kodu herhangi bir olaya bağlayarak istediğiniz zamanda etkin olmasını da sağlayabilirsiniz.

Örneğin;

procedure TForm1.Button1Click(Sender: TObject);
var
 I: Integer;
 LItem: TListViewItem;
begin
 ListView1.Items.Clear;
 ListView1.BeginUpdate;
 for I := 1 to 10 do
 begin
   LItem := ListView1.Items.Add;
   LItem.Data['Text1'] := I.ToString() + '. Kayıt'; //DynamicAppearance kullanıyorsanız, Normal Text için ise ---> LItem.Text := I.ToString() + '. Kayıt'; kullanın
 end;
 ListView1.EndUpdate;
 ListView1.EditMode := True;
end;

LvCh1.png

Seçimli olan veya olmayan kayıtların tespitini yapmak için TListViewItem'ın Checked özelliği kullanılmaktadır. 
Aşağıda bir örnekle Cheked özelliğinin kullanımı örneklendirilmiştir.

procedure TForm2.SpeedButton2Click(Sender: TObject);
var
 I: Integer;
begin
 Memo1.Lines.Clear;
 for I := 0 to ListView1.Items.Count - 1 do
 begin
   with ListView1.Items[i] do
   begin
     if Checked = True then
       Memo1.Lines.Add((I + 1).ToString() + '. Kayıt Seçili')
     else
       Memo1.Lines.Add((I + 1).ToString() + '. Kayıt Maalesef Seçili Değil!')
   end;
 end;
end;

LvCh2.png

Seçim işlemi ListView'in doğal özelliği olan EditMode ile yapılabildiği gibi GlyphButton ile de yapılabilmektedir.

Örnekte ListView EditMode ve GlyphButton Checked modu ayrı ayrı test edilmiştir.
Ayrı butonlarda tüm Item'lar checked durumuna alınmış ve yine ayrı bir butonda Checked durumları Memo'da gösterilmiştir.

Ekran Görüntüsü:

LvCh3.gif

Örnek Uygulama Linkleri:

EditMode Örneği

EditMode ve GlyphButton Örneği

Merhaba;
Listviewde satırı tıklayınca checkbox true veya false oluyor. Sadece checkboxsı tıklayınca true veya false olmasını nasıl sağlarım?

Merhaba,
Yeni kaynak kitapta tam da bu konu ile ilgili anlaşılır bir örnek var. Fakat sizi kitap almaya da zorlayamam. Smile
ListView üzerinde bir GlyphButton oluşturmayı ve ListView üzerindeki bir bileşene nasıl ulaşacağınızı DelphiCan'dan da öğrenebilirsiniz.


ListView - CheckBox Kullanmak - ahmetb - 07-09-2018

@Fesih ARSLAN teşekkür ederim.