Listview daha fazla text alanı oluşturma
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Listview daha fazla text alanı oluşturma
Merhaba;
GlyphButton kullanarak CheckBox yapmak için;
1- Öncelikle yeni bir proje oluşturalım.
2- Forma bir adet ListView yerleştirelim.
3- Structure penceresinde ListView>ItemAppearance>Item'ı seçip Object Inspector'dan Appearance özelliğini DynamicAppearance seçelim.
Böylece bir adet TTextObjectAppearance oluşacaktır.
4- Yine Structure penceresinde ListView>ItemAppearance>Item'ı seçili iken Object Inspector'da en altta yer alan artı (+) sembölünün yanındaki Add new... seçeneğini TGlyphButtonObjectAppearance ile değiştirelim. Böylece TListItemGlyphButton tipinde yeni bir alt Item oluşacaktır.
5- Oluşturduğumuz Item elemanlarını düzenlemek için Form üzerindeki ListView'e sağ tıklayıp "Toggle DesignMode" menüsünü seçelim.
Tasarım işi tamamlanmış oldu.
Kod kısımlarını ise aşağıdaki linkten paylaşıyorum.
Proje Linki: https://mega.nz/#!yYUSwAjL!I-QtkzwZj2RZ ... YD-F5Ohijs
Ekran görüntüsü:
İyi çalışmalar...
GlyphButton kullanarak CheckBox yapmak için;
1- Öncelikle yeni bir proje oluşturalım.
2- Forma bir adet ListView yerleştirelim.
3- Structure penceresinde ListView>ItemAppearance>Item'ı seçip Object Inspector'dan Appearance özelliğini DynamicAppearance seçelim.
Böylece bir adet TTextObjectAppearance oluşacaktır.
4- Yine Structure penceresinde ListView>ItemAppearance>Item'ı seçili iken Object Inspector'da en altta yer alan artı (+) sembölünün yanındaki Add new... seçeneğini TGlyphButtonObjectAppearance ile değiştirelim. Böylece TListItemGlyphButton tipinde yeni bir alt Item oluşacaktır.
5- Oluşturduğumuz Item elemanlarını düzenlemek için Form üzerindeki ListView'e sağ tıklayıp "Toggle DesignMode" menüsünü seçelim.
Tasarım işi tamamlanmış oldu.
Kod kısımlarını ise aşağıdaki linkten paylaşıyorum.
Proje Linki: https://mega.nz/#!yYUSwAjL!I-QtkzwZj2RZ ... YD-F5Ohijs
Ekran görüntüsü:
İyi çalışmalar...
Re: Listview daha fazla text alanı oluşturma
Efsanesiniz Fesiharslan üstadım...
En son brs tarafından 29 May 2016 10:59 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Listview daha fazla text alanı oluşturma
Estağfurullah,brs yazdı:Efsanesiniz Efsiharslan üstadım...
Yeni teknoloji işte, ayak uydurmaya çalışıyoruz.
İyi çalışmalar...
Re: Listview daha fazla text alanı oluşturma
Selamlar;
Andoridle çok fazla sıkıntı yaşıyorum; Listviewde oluşturulan kayıtları bir buton yardımıyla tümünü seçtirmek istiyorum, bunu klasik yolla yapılıyor. Fakat özel olarak oluşturulan "ItemEdit" üzerinden GlyphButton ları bir türlü tümünü seçtirme işlemini başaramadım; bu sorunu nasıl çöze yaptırabilirim...
Andoridle çok fazla sıkıntı yaşıyorum; Listviewde oluşturulan kayıtları bir buton yardımıyla tümünü seçtirmek istiyorum, bunu klasik yolla yapılıyor. Fakat özel olarak oluşturulan "ItemEdit" üzerinden GlyphButton ları bir türlü tümünü seçtirme işlemini başaramadım; bu sorunu nasıl çöze yaptırabilirim...
Kod: Tümünü seç
procedure TForm3.BtnTumuClick(Sender: TObject);
begin
ListView.BeginUpdate;
try
begin
if BtnTumu.Tag = 0 then
begin
for I := 0 to ListView.Items.Count - 1 do
ListView.Items[I].Checked := True;
BtnTumu.Tag := 1;
end
else
begin
for I := 0 to ListView.Items.Count - 1 do
ListView.Items[I].Checked := False;
BtnTumu.Tag := 0;
end;
end;
finally
ListView.EndUpdate;
end;
end;
Kod: Tümünü seç
var
Button: TListItemGlyphButton;
begin
if (AObject is TListItemGlyphButton) then
begin
Button := TListItemGlyphButton(AObject);
Button.Checked := Not Button.Checked;
end;
end
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Listview daha fazla text alanı oluşturma
Tekrar Merhaba,Dostk yazdı:Selamlar;
Andoridle çok fazla sıkıntı yaşıyorum; Listviewde oluşturulan kayıtları bir buton yardımıyla tümünü seçtirmek istiyorum, bunu klasik yolla yapılıyor. Fakat özel olarak oluşturulan "ItemEdit" üzerinden GlyphButton ları bir türlü tümünü seçtirme işlemini başaramadım; bu sorunu nasıl çöze yaptırabilirim...
ListView'in, FindDrawable yöntemi ile TListItemDrawable tipini bulunup, TListItemGlyphButton tipine dönüştürülmesi ile GlyphButton'un tüm özellikleri kullanılabilir.
Aşağıdaki kod yapısı ile ListView'deki tüm Item'ların (GlyphButton tipindeki CheckBox'ların) Checked özelliği True yapılabilir.
Kod: Tümünü seç
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ListView1.Items.Count - 1 do
begin
with ListView1.Items[i].Objects.FindDrawable('GlyphButton2')
as TListItemGlyphButton do
begin
Checked := True;
{
if Checked then
ShowMessage((I + 1).ToString() + '. Kayıt Seçili');
}
end;
end;
end;
İyi çalışmalar...
Re: Listview daha fazla text alanı oluşturma
Teşekkür ederim, Allah razı olsun...
Re: Listview daha fazla text alanı oluşturma
Merhaba;
Telefon üzerinden deneme yaptım, ancak sıkıntı gördüm.
Telefon ekranından tıklama ile tek tek kayıt seçildiğinde checked gerçekleşiyor ve seçilen kayıtla ilgili işlemler yapılabiliyor;
Fakat tüm kayıtları bir buton ile seçildiğinde (for I in ListView1.Items.CheckedIndexes(True) do) döngüsü checked'i seçilmiş olarak algılamıyor bu durum nasıl çözülebilir?
Tümünü seç:
Telefon üzerinden seçtirme:
Telefon üzerinden deneme yaptım, ancak sıkıntı gördüm.
Telefon ekranından tıklama ile tek tek kayıt seçildiğinde checked gerçekleşiyor ve seçilen kayıtla ilgili işlemler yapılabiliyor;
Fakat tüm kayıtları bir buton ile seçildiğinde (for I in ListView1.Items.CheckedIndexes(True) do) döngüsü checked'i seçilmiş olarak algılamıyor bu durum nasıl çözülebilir?
Tümünü seç:
Kod: Tümünü seç
procedure TForm1.BtnTumuClick(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ListView.Items.Count - 1 do
begin
with ListView.Items[I].Objects.FindDrawable('GlyphButton')
as TListItemGlyphButton do
begin
if Checked then
begin
Checked := False;
end
else
begin
Checked := True;
end;
{
if Checked then
ShowMessage((I + 1).ToString() + '. Kayıt Seçili');
}
end;
end;
end;
Kod: Tümünü seç
procedure TForm1.ListViewButtonClick(const Sender: TObject;
const AItem: TListItem; const AObject: TListItemSimpleControl);
var
Button: TListItemGlyphButton;
begin
if (AObject is TListItemGlyphButton) then
begin
Button := TListItemGlyphButton(AObject);
Button.Checked := Not Button.Checked;
end;
end;
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Listview daha fazla text alanı oluşturma
Merhaba;
Tekrar bir örnekle cevap vermek istiyorum.
Ö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ü:
Uygulama Linki:
https://mega.nz/#!HcUFHI5J!_bHJO3ArtvhM ... JwROJn8pE0
Tekrar bir örnekle cevap vermek istiyorum.
Ö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ü:
Uygulama Linki:
https://mega.nz/#!HcUFHI5J!_bHJO3ArtvhM ... JwROJn8pE0
Re: Listview daha fazla text alanı oluşturma
Selamlar;
Oluşturulan GlyphButton butondan checkbox değerini nasıl alabilirim bu yöntem ile (ListView1.Items.Data['GlyphButton'].???? ) bir çok metot denedim olmadı.
Oluşturulan GlyphButton butondan checkbox değerini nasıl alabilirim bu yöntem ile (ListView1.Items.Data['GlyphButton'].???? ) bir çok metot denedim olmadı.
Kod: Tümünü seç
procedure TForm1.UserDeleteClick(Sender: TObject); // Delete onay
var
I: Integer;
begin
for I := 0 to ListView1.Items.Count - 1 do
begin
showmessage(ListView1.Items[I].Data['GlyphButton'].AsString);
end;
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Listview daha fazla text alanı oluşturma
Merhaba;Serhat yazdı:Selamlar;
Oluşturulan GlyphButton butondan checkbox değerini nasıl alabilirim bu yöntem ile (ListView1.Items.Data['GlyphButton'].???? ) bir çok metot denedim olmadı.
Kod: Tümünü seç
procedure TForm1.UserDeleteClick(Sender: TObject); // Delete onay var I: Integer; begin for I := 0 to ListView1.Items.Count - 1 do begin showmessage(ListView1.Items[I].Data['GlyphButton'].AsString); end;
Aşağıdaki şekilde yapabilirsiniz.
Kod: Tümünü seç
procedure TForm1.UserDeleteClick(Sender: TObject); // Delete onay
var
I: Integer;
Buton:TListItemGlyphButton;
begin
for I := 0 to ListView1.Items.Count - 1 do
begin
Buton:=ListView.Items[I].Objects.FindDrawable('GlyphButton')
as TListItemGlyphButton;
if Buton.Checked then {seçili ise}
ShowMessage('Listedeki '+i.ToString+'. kayıt seçilidir');
end;
end;
Re: Listview daha fazla text alanı oluşturma
Teşekkür ederim, İyi çalışmalar...
Re: Listview daha fazla text alanı oluşturma
Designmode ve DynamicAppearance çıkmıyor bu nedenle daha fazla text alanı oluşturamıyorum, görsel olarakta ayarlarını yapamıyorum. Nedeni ne olabilir?
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Listview daha fazla text alanı oluşturma
Merhaba;
Belirttiğiniz Toggle DesignMode ve DynamicAppearance özellikleri Delphi 10.1 Berlin sürümü ile birlikte gelen yeniliklerdir.
Belirttiğiniz Toggle DesignMode ve DynamicAppearance özellikleri Delphi 10.1 Berlin sürümü ile birlikte gelen yeniliklerdir.
Re: Listview daha fazla text alanı oluşturma
çalışma anında listview kayıt eklerken yada ekledikten sonra koşula bağlı olarak ilgili kaydı yada text nesnesini nasıl renklendirebiliriz
Re: Listview daha fazla text alanı oluşturma
hassur yazdı:çalışma anında listview kayıt eklerken yada ekledikten sonra koşula bağlı olarak ilgili kaydı yada text nesnesini nasıl renklendirebiliriz
bu konuda yardım edebilecek varmı.
liste view i ttextobjectappearance gibi text nesneleri ile tasarladığımız düşünürsek (Text1, Text2, Text3 şeklinde) listview i doldurma esasında if < 5 ten küçükse Text2 Kırmızı Text3 Bold gibi nasıl yaparız. Hatta if xyzdata value su <> 0 gibiyse Text3 visible true yada false olma durumu nasıl yapılır.
Servisten gelen datayı bir prosedür yardımı ile listeye dolduruyorum.
Veri dolarken atamaları alttaki örnek gibi yapıyorum ama dizayn tarafınıda iflerle ne yaptıysam manipule edemedim.
Kod: Tümünü seç
AItem.Data['Text1'] := db_degeri_1;
AItem.Data['Text2'] := 'elle_yazdim';
AItem.Data['Text3'] := db_degeri_2 + ' ' + db_degeri_3;
Visible font gibi durumlar nasıl handle edilir. Bilen varsa yardımcı olabilirmi teşekkürler.