cxgrid sadece tek hücre renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
faserka
Üye
Mesajlar: 14
Kayıt: 13 Ağu 2004 03:00

cxgrid sadece tek hücre renklendirme

Mesaj gönderen faserka » 22 Ara 2008 02:22

Merhaba arkadaşlar
cxgrid de sütundaki belirli bir şarta göre satırı komple renklendirebiliyorum. Fakat yapmak istediğim belirlediğim sütundaki değerlere göre tüm satırın değilde karşılaştırma yaptığım hücrenin renginin değişmesi. Yani sadece sütundaki şarta uyan hücreleri renklendirmek istiyorum. Bir türlü olmadı :roll:
Yardımcı olursanız sevinirim teşekkürler

akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 05:04
Konum: Antalya

Re: cxgrid sadece tek hücre renklendirme

Mesaj gönderen akdatilla » 22 Ara 2008 05:08

merhaba
Benim de bugünlerde senin istediğin gibi bir uygulama yapmam gerekiyordu. En son aşağıdaki gibi bir kod bloğu yapmıştım.
Ancak programı halen tam olarak test edemedim.

Kod: Tümünü seç

procedure TStkBakiyeF.cxStkGridDBTableView1CustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
Var
   fn:string;
begin
     if not Assigned(AViewInfo) then exit;
     ADone:=False;
     if (AViewInfo.Item.Index<0) or (AViewInfo.Item.Index>=cxStkGridDBTableView1.ColumnCount)then
     begin
          {
          FASCInfoProc(msgWarning,'Grid index='+inttostr(AViewInfo.Item.Index)+'/'+
          inttostr(cxStkGridDBTableView1.ColumnCount));
          }
          exit;
     end;
     fn:=cxStkGridDBTableView1.Columns[AViewInfo.Item.Index].DataBinding.FieldName;
     if fn='STM_KM' then
     Begin
               ACanvas.Brush.Color := clNavy;
               ACanvas.Font.Color := clWhite;
     end;
end;

yusuf simsek
Üye
Mesajlar: 309
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: cxgrid sadece tek hücre renklendirme

Mesaj gönderen yusuf simsek » 03 Nis 2019 01:39

Çok eski bir konu ama cevap burada dursun... İhtiyaç duyan olabilir...

Öncelikle Hücre renkleri için cxStyleRepository ekleyip style tanımlaması yapınız, ( cxGrid Propertise -> Styles den de style otomatik oluşturabilisiniz )
CxGrid Event -> Styles -> OnGetContentStyle

olayına gerekli şarta göre oluşturduğunuz style vererek renklendirmeyi yapabilirsiniz...

Kod: Tümünü seç

       
         if ARecord.Values[AItem.Index] = 'G' then ASTyle := cxStyle1 //mavi
  else if ARecord.Values[AItem.Index] = 'A' then ASTyle := cxStyle2 //kırmızı
  else if ARecord.Values[AItem.Index] = 'N' then ASTyle := cxStyle3 //yeşil
  else if ARecord.Values[AItem.Index] = 'İ'  then ASTyle := cxStyle4  //sarı
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Cevapla