Dbgridde Satırları renklendirmek istiyorum
Bilindik bir yöntem var
Drwacell yada drwacolumn olayında datasetin kayıt numarası kontrol edilerek satır renklendiriliyor .
Yalnız bir problem yaşıyorum çünkü kayıtları getirirken kayıt numarası (-1)
olarak gözüküyor ondan dolayı kontrol yapamıyorum ve renklendiriyorum
Farklı bir yöntem bilen varsa yardımcı olursa sevinirim
dBGRİD Satır Renklendirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
+1 deyip kontrol et. ama bu iyi bir çözüm değil
i dene.

Kod: Tümünü seç
if odd(DBGrid1.DataSource.DataSet.RecNo) then .... else ....
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Selam.
Kardeş faydası olur mu bilmem ama istediğin böyle birşeyse bir fikir verebilir
Kardeş faydası olur mu bilmem ama istediğin böyle birşeyse bir fikir verebilir
Kod: Tümünü seç
procedure Tstokhareket.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
with DBGrid1.Canvas do
begin
Brush.Color :=$00FEFAF1;
FillRect(rect);
if (gdSelected in State) then
begin
brush.color := $00D7FFD7;
Font.Color := Clred;
Font.Size:=10;
FillRect(rect);
end;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Hocam İlginiz için sağolun ama bütün kayıtlarda kayıt numarası -1 geliyor bir eklersek hepsi sıfır olacak ve ben bu koşulu verirsem bütün satırları renklendirmem gerekiyorrsimsek yazdı:+1 deyip kontrol et. ama bu iyi bir çözüm değil![]()
i dene.Kod: Tümünü seç
if odd(DBGrid1.DataSource.DataSet.RecNo) then .... else ....
Bir de bunu dene
Şayet tablo veya query'den kayıtları listeliyor ve belli kriterlere uyan kayıtları farklı renge boyamak istiyorsan şu şekilde yapabilirsin.
Burada biri limitim var. Gridin bağlı olduğu tablo veya Querydeki bir alanı bu limitle karşılaştırdım, limiti aşıyorsa kırmızı, aşmıyorsa maviye boyadım.
Kolay gelsin.
Kod: Tümünü seç
procedure Tolay.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
limit,sayi: integer;
begin
if dm.q_limit_kontrol.active=true then
Begin
sayi:=DBGrid1.Datasource.Dataset.Fields[7].Ascurrency;//kontrol ettiğim alan sayı olduğu için
limit:=strtocurr(edit1.text);//Bu sayıyla karşılaştırıyorum
if sayi>=limit then
DBGrid1.canvas.Brush.color:=clred // Kırmızı olsun
else
DBGrid1.canvas.Brush.color:=clblue // mavi olsun
DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
Kolay gelsin.