Arkadaşlar Öncelikle hepinizin geçmiş kurban bayramını ve yeni yılını kutlarım. Gridimde fields [0] alanına göre renk vereceğim tüm satırlara fakat bir türlü karşılaştıramadım. Registry veya ini dosyası oluşturmak istemiyorum.
JediDbgrid kullanıyorum.
procedure TSform.ALLsipDBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var ilk,son:string;
begin
ilk := ALLsipDBGrid.Fields[0].Value;
if ilk <>son
then begin ALLsipDBGrid.Color:= clRed;
end
else begin ALLsipDBGrid.Color:= clgreen;
son :=ALLsipDBGrid.Fields[0].Value;
end;
end;
Numara
1 satır renk Kırmızı
1 satır renk Kırmızı
2 satır renk Yeşil
2 satır renk Yeşil
3 satır renk Kırmızı
4 satır renk Yeşil
5 satır renk Kırmızı
Şeklinde gitmesini istiyorum.
Bu kodda hatalı biliyorum ama böle bişeyi rege ve ini ye yazmadan nasıl yapabiliriz. Teşekkürler.
procedure TSform.ALLsipDBGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if ALLsipDBGrid.Fields[0].AsInteger mod 2=1 then
ALLsipDBGrid.Canvas.Brush.Color := clRed
else ALLsipDBGrid.Canvas.Brush.Color := clGreen;
DBGrid.DefaultDrawColumnCell(Sender,Rect,DataCol,Column,State);
end;
şeklinde boyama işlemi yapabilirsin ama bu bir satır yeşil bir satır kırmızı olmaz ALLsipDBGrid.Fields[0] da bulunan değer tek ise kırmızı çift ise yeşil olur. Kolay gelsin.
Şaban Şahin AKMAN
_________________ Derin olan kuyu değil kısa olan iptir. - .
Mrb; sender parametresini sil ve şu hale getir DBGrid.DefaultDrawColumnCell(Rect,DataCol,Column,State);. Acele ile test etmeden cevap yazınca böyle oldu. Fields[0].value değerine göre renklendirme işlemi yapmak istiyorsan o zaman ortaya çıkan renkler gridin gösterdiği tablonun gridde gösterdiği ilk alanın değerlerine göre renklendirilecektir. Örneğime göre ilk alanda görünen değer tek ise kırmızı çift ise yeşil görünecektir. Tüm kayıtlarda o alan değeri tek ise kıpkırmızı bir gridin olacaktır. Değerin string de olabileceğini söylüyorsun. O halde sen bu örnekten yola çıkarak kodları kendi istediğin şekilde uygunlaştırabilirsin. Kolay gelsin.
Şaban Şahin AKMAN
_________________ Derin olan kuyu değil kısa olan iptir. - .