23 Haziran 2014 Pazartesi

DbGrid hücre renklendirme

DbGrid hücre renklendirme

Merhabalar, Eski yazılarımın bir tanesinde Cxgrid üzerinden renklendirmeyi anlatmıştım şimdi sıra Dbgrid'de hücre renklendirmeye geldi. Bunun için DbGridin DrawColumnCell  eventine girip önce işlemi yapacağımız Alan adının koşulunu sağlamalıyız bunun için if sorgumuzu aşağıdaki şekilde yazıyoruz.
if Column.FieldName = AnimesQryStates.FieldName then  //Benim alan adım States sizinki farklı birşey olabilir.

Sıra geldi bu Alanın değerlerinin koşullarını ele almaya mesela 3 tane Statümüz olsun Messenger gibi düşünelim (Uygun,Dışarda,Meşgul) durumlarımızı sırasıyla (0,1,2)  şeklinde değerler aldığını varsayarak renklendirme için kodlarımıza geçiyoruz.
case AnimesQryStates.AsInteger of //Ben case yaptım daha kısa anlasılır isteyen if sorguları ile uzatabilir
0: DBGrid1.Canvas.Brush.Color:=clGreen; // Durum Uygun ise
1: DBGrid1.Canvas.Brush.Color:=clYellow;// Durum Dışarda ise
2: DBGrid1.Canvas.Brush.Color:=clRed;// Durum Meşgul ise
end;