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;
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;
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ü:
Örnek Uygulama Linkleri:
EditMode Örneği
EditMode ve GlyphButton Örneği
şarta bağlı renklendirme yapabilirmiyiz,imagelistten resim nasıl ekleriz
(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;
(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

Edit Mode aktif edince tasarım şekil değiştiriyor. Tasarımda da, çalışma esnasında da aynı.
(12-05-2018, Saat: 13:03)engerex Adlı Kullanıcıdan Alıntı: [ -> ]
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.
(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ı: [ -> ]
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ış

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.
(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;

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;

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ü:

Ö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?
(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;

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;

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ü:

Ö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.

ListView üzerinde bir
GlyphButton oluşturmayı ve ListView üzerindeki bir bileşene
nasıl ulaşacağınızı DelphiCan'dan da öğrenebilirsiniz.