Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FMX Listview
#1
Merhaba 
Rest sunucudan gelen bilgileri Listview'de göstermeye çalışıyorum. 
1) ItemText2 deki bilgiyi her zaman sağa yaslanmış şekilde nasıl gösteririm? (Item Text2 yi tanımladığım TTextObjectAppearance in propertiesindeki align'i leading yerine trailing yaptığımda Item Text2 kayboluyor.)
2) bu alanı aldığı değere göre nasıl renklendiririm? (eksi olanlar kırmızı gibi?)
3) Header text için zemin rengi verebilir miyim? veya ızgara şeklnde (veya 1,3 5 aynı 2,4,6 farklı renkte olabilir mi?

listview.jpg
Cevapla
#2
2) renklendirme sorunu ile ilgili aşağıdaki kodu buldum fakat target platform Win32'de çalışıyor, androidde program bekleyip kapanıyor. 

procedure TfrmAnaMenu.Mus_LViewUpdateObjects(const Sender: TObject;
  const AItem: TListViewItem);
var
 LwText : TListItemText;
 Tutar : double;
begin
try
 LwText := AItem.View.FindDrawable('Text2') as TListItemText;
 if not(LwText.Text ='') then
    begin
      try Tutar := StrToFloat(LwText.Text); except Tutar :=0 ; end;
      if Tutar>0 then LwText.TextColor := TAlphaColorRec.Green
                 else LwText.TextColor := TAlphaColorRec.Red;
    end;
except

end;
end;
Cevapla
#3
   
Begin : = end / 2;
Cevapla
#4
Teşekkürler
Kayıt sayısı sabit değil, gelen değere göre renklendirmem lazım.
Cevapla
#5
(30-09-2024, Saat: 14:56)m_ekici Adlı Kullanıcıdan Alıntı: Teşekkürler
Kayıt sayısı sabit değil, gelen değere göre renklendirmem lazım.

   

   
Begin : = end / 2;
Cevapla
#6
Tekrar Merhaba

AItem.Objects.TextObject.TextColor := 

Burada Access violation hatası alıyorum. (Delphi 10.2)

procedure TfrmAnaMenu.Mus_LViewUpdateObjects(const Sender: TObject;
 const AItem: TListViewItem);
begin
try
   if AItem.Index=3 then
      begin
        if StrToFloat(AItem.Text)<0
           then AItem.Objects.TextObject.TextColor := TAlphaColorRec.red
           else AItem.Objects.TextObject.TextColor := TAlphaColorRec.Green;
      end;
except

end;
end;
Cevapla
#7
Baştan adım adım gidelim. 
1- Öncelikle Item tipinin DynamicAppearance olduğundan emin olalım. 
2- Aşağıdaki gibi Item adını (örnekte değiştirdim txtDeneme1 olarak kullandım) öğrenelim.

   

3- Kayıtlarınızı aşağıdki gibi ListView'ın Data özelliğine atayın.
var
 I: Integer;
 LItem: TListViewItem;
begin
 ListView1.Items.Clear;
 ListView1.BeginUpdate;
 for I := 1 to 10 do
 begin
   LItem := ListView1.Items.Add;
   LItem.Data['txtDeneme1'] := I.ToString() + '. Kayıt';
 end;
 ListView1.EndUpdate;
end;

4- ListView'ın OnUpdateObjects olayında Item'a, aşağıdaki gibi herhangi bir yöntemle ulaşabilir ve istediğiniz özelliğini değiştirebilirsiniz.
procedure TForm1.ListView1UpdateObjects(const Sender: TObject; const AItem: TListViewItem);
begin
 var
 itm := AItem.Objects.FindObjectT<TListItemText>('txtDeneme1');
 if itm.Text = '5. Kayıt' then
   itm.TextColor := TAlphaColors.Darkred;
 (* Bu yöntemi de kullanabilirsiniz
   with TListItemText(AItem.Objects.FindDrawable('txtDeneme1')) do
   if Text = '5. Kayıt' then
   TextColor := TAlphaColors.Darkred;
 *)
end;
Begin : = end / 2;
Cevapla
#8
Vakit ayırdığınız için teşekkür ederim.
Bendeki yaşadığım kilitlenme sıkıntısını sizin kodda da yaşadım. Fakat sıkıntı Android emülatorden kaynaklanıyormuş.
Telefona aktardım sıkıntısız çalıştı.
Cevapla
#9
(30-09-2024, Saat: 19:57)m_ekici Adlı Kullanıcıdan Alıntı: Vakit ayırdığınız için teşekkür ederim.
Bendeki yaşadığım kilitlenme sıkıntısını sizin kodda da yaşadım. Fakat sıkıntı Android emülatorden kaynaklanıyormuş.
Telefona aktardım sıkıntısız çalıştı.

Rica ederim.
Android emülator hantal ve günümüz ihtiyaçlarına cevap verecek kadar iyi değil. Sanırım uzun bir süredir iyileştirme ve geliştirmek için de pek çaba gösterilmiyor. 
IOS tarafındaki Simulator oldukça stabil ve performanslı, cihaz marka ve model özelliklerini bire bir temsil ediyor. 
Her XCode yeni bir Simulator ve yeni bir SDK içeriyor. 
Dolayı ile IOS tarafında simulatorler ile çalışmak mantıklı, fakat Android tarafında emülatör ile çalışmak pek iyi bir fikir değil. 
Doğrudan fiziksel cihaz kullanmak, daha doğru testler yapmanızı sağlayacaktır.
Begin : = end / 2;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Listview item Boyama codder71 7 268 18-08-2024, Saat: 19:01
Son Yorum: codder71
  FMX Listview Image Sorunu [ÇÖZÜLDÜ] Mesut 1 461 20-10-2023, Saat: 15:03
Son Yorum: Mesut
  Listview Drag drop Kullanımı [ÇÖZÜLDÜ.] codder71 10 2.018 28-06-2023, Saat: 18:03
Son Yorum: codder71
  FMX Listview Item'lar arası boşluk vedat33 12 2.508 16-11-2022, Saat: 20:17
Son Yorum: mcuyan
  Listview Satır Renklendirmesi Yapma sadoal351 1 590 12-10-2022, Saat: 14:02
Son Yorum: RAD Coder



Konuyu Okuyanlar: 1 Ziyaretçi