jvdbgrid belirli sayıda satır renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

jvdbgrid belirli sayıda satır renklendirme

Mesaj gönderen bobasturk »

Merhabalar,

Yaptığım aramada genelde yani çıkan sonuçların tümünde field lerde şarta göre renklendirme olayları anlatılmış ve bunu yapabiliyorum. Yapmak istediğim şu.

Mem tabloya veri girişi yapılıyor. qreport ayarlarını ona göre yaptım ki mem tablo yazdırıldığında her sayfada on veri yazdırılıyor. bu jvdbgrid de veriler göründükçe yani kayıt girildikçe her on kayıtta bir satır renkleri değişsin istiyorum. yani ilk on kayıt sarı satır renkli sonraki on kayıt beyaz sonraki on kayıt gümüş gibi bunu nasıl bir yöntemle yapabilirim

kolay gelsin teşekkürler
En son bobasturk tarafından 21 Mar 2006 09:48 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

jvdbgrid söle söleyeyim sadece gridde görünecekse jvdbgrid cellcolor diye bir sey veya buna yakın bir sey olmalı

her on kayıtta bir renk değişsin istiyorsan...
jvdbgrid bağlı datasource change olayına

jvdbgridin satır sayısını mod işlemine sokar mod(10) göre sonuc sıfır olunca sen satırın satır renklerini değiştirisin şimdilik aklıma gelen bu?
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

@Tuanna ustam verdiğin ipucu ile forumda yaptığım arama sonucunda

Kod: Tümünü seç

  if jvDBGrid1.DataSource.DataSet.RecNo mod 2 = 0 then
    jvDbgrid1.Canvas.brush.Color:=clcream
  else
  if jvDBGrid1.DataSource.DataSet.RecNo mod 2 = 1 then
    jvDbgrid1.Canvas.Brush.Color:=clbtnface;

    jvdbgrid1.Canvas.Brush.Color:=jvDbgrid1.Canvas.Brush.Color;
    jvdbGrid1.Canvas.Font.Color:=ClBlack; // Fontun rengini değiştirir..
    jvDbgrid1.DefaultDrawColumnCell(Rect,Datacol,column,state);
bu koda ulaştım gayet güzel bir satır cream renk bir satır btnface renk. ama istediğim on satırda bir renk değişimi üzerinde çalışıyorum fakat sanırım döngü kurmak gerekiyor

teşekkür ve saygılarımla kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

((RecNo div 10) mod 2)

bu formül isini gorecektir :wink:
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

@Gökmen ustam teşekkür ederim şu an deneyemiyorum denediğim an sonucu aktarırım.

Kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

Diğer işlerin yoğunluğundan cevap verme boşluğunu yeni buldum, @Gökmen ustam verdiğin şekilde kullandım ve gayet güzel aslında küçük bir sorun haricinde on kaydı seçip rengini değiştireceğine dokuz kaydın rengini değiştiriyor. deneme mahiyetli girdiğim 11 kayıt var. İlk kayıt seçili durumda dokuz kaydın rengini btnface yapıyor diğerlerini default rengte tutuyor.

Uyguladığım kod şöyle;

Kod: Tümünü seç

procedure TFrmGelenEvrakAnaTablo.JvDBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if (jvDBGrid1.DataSource.DataSet.RecNO div 10) mod 2 = 0 then
    jvDbgrid1.Canvas.brush.Color:=clbtnface
  else
    jvdbgrid1.Canvas.Brush.Color:=jvDbgrid1.Canvas.Brush.Color;
    jvdbGrid1.Canvas.Font.Color:=ClBlack; // Fontun rengini değiştirir..
    jvDbgrid1.DefaultDrawColumnCell(Rect,Datacol,column,state);
end;
teşekkür ve saygılarımla kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
ylmz
Üye
Mesajlar: 110
Kayıt: 18 Mar 2005 02:32
Konum: Antalya

Mesaj gönderen ylmz »

merhaba,

jvDBGrid1.DataSource.DataSet.RecNO = 0 olan kayıt olmadığından ilk seri 9 adetten oluşuyor.Şunu derseniz sanırım sorun çözülür.

Kod: Tümünü seç

if ((jvDBGrid1.DataSource.DataSet.RecNO - 1) div 10) mod 2 = 0 then 
    jvDbgrid1.Canvas.brush.Color:=clbtnface 
  else 
    jvdbgrid1.Canvas.Brush.Color:=jvDbgrid1.Canvas.Brush.Color;
kolay gelsin.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhaba,

@ylmz ustam teşekkür ederim @gkimirti ustam ve sizin vermiş olduğu kıymetli bilgi doğrultusunda kodu şu şekilde düzenledim ve her on kayıtta bir satır renlerini değiştirdi.


Teşekkür ve saygılarımla.
Kolay gelsin.

not:ileride birilerine lazım olması amacı ile konu başlığını uygun şekilde değiştirdim.

kodu yazmayı unutmuşum.

Kod: Tümünü seç

procedure TFrmGelenEvrakAnaTablo.JvDBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if ((jvDBGrid1.DataSource.DataSet.RecNO-1) div 10) mod 2 = 0 then
    jvDbgrid1.Canvas.brush.Color:=clbtnface
  else
    jvdbgrid1.Canvas.Brush.Color:=clcream;
    jvdbGrid1.Canvas.Font.Color:=ClBlack; // Fontun rengini değiştirir..
    jvDbgrid1.DefaultDrawColumnCell(Rect,Datacol,column,state);
end;
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Cevapla