Dbgrid koşullu renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
hbulus
Üye
Mesajlar: 163
Kayıt: 14 Tem 2003 11:30
İletişim:

Dbgrid koşullu renklendirme

Mesaj gönderen hbulus »

Dbgrid koşullu renklendirme konusu daha önce konuşulan bir konu ve kullanıyorum. Ama şöyle bir şey yapmak istiyorum ama tam beceremedim;

Bir cari hareket tablosundan rapor olarak bir günlük hareketi çekiyorum. Hareketler cari koda göre sıralı. Benim yapmak istedeğim aynı cari koda ait olup alt alta gelen satırları aynı renk yapmak başka bir cari koda geçince satır rengi değişecek.

Yardımlarınız için teşekkürler.
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Dbgrid koşullu renklendirme

Mesaj gönderen conari »

Kod: Tümünü seç

if  OSDBGrid.DataSource.DataSet.RecordCount <> 0 then
        begin
          if osDBGrid.Fields[0].AsInteger mod 2=1 then
        osDBGrid.Canvas.Brush.Color := clactiveborder
      else osDBGrid.Canvas.Brush.Color := clgreen;
  osDBGrid.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
KODLAR Numeric ise işe yarar.

veya kodu değişken de tutup her seferinde karşılaştıracaksın. değişince rengi değiştiricek ve değişkenide değiştireceksiniz.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
hbulus
Üye
Mesajlar: 163
Kayıt: 14 Tem 2003 11:30
İletişim:

Re: Dbgrid koşullu renklendirme

Mesaj gönderen hbulus »

Kod: Tümünü seç

if  DBGrid4.DataSource.DataSet.RecordCount <> 0 then
        begin
          if DBGrid4.Fields[0].AsString<>ckod then
          begin
          if sayi<>1 then renk:=renk+2000;
          DBGrid4.Canvas.Brush.Color :=renk;
          end
          else
      DBGrid4.Canvas.Brush.Color :=renk;
      DBGrid4.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
ckod:=DBGrid4.Fields[0].AsString;
if sayi=1 then renk:=211111111;
sayi:=sayi+1;
şeklinde düzenledim. Hoş oldu hani. Ama grid'in üzerine satırlar üzerinde tıklandığında renkler bozuluyor. Tıklama esnasında bu kodların tekrar devreye girmemesi için ne yapılabilir.
Erbab-ı kemâli çekemez nakıs olan, rencide olur Dide-i Huffaş ziyadan....
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Dbgrid koşullu renklendirme

Mesaj gönderen conari »

aynı yerde bu satırdan önce
DBGrid4.DefaultDrawColumnCell(Rect,DataCol,Column,State);

Kod: Tümünü seç

 If (gdSelected in state) then begin
............. else
................. 
end;
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: Dbgrid koşullu renklendirme

Mesaj gönderen conari »

Kod: Tümünü seç

If (gdSelected in state) then begin
..............
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla