DrawColumnCell ile grup satır boyama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

DrawColumnCell ile grup satır boyama

Mesaj gönderen mege »

Selamlar

aşağıdakine benzer bir tablom var, standart dbgrid kullanarak herbir grupu ayrı renkte boyamaya çalışıyorum ama sıralama şekline göre değiştiği için gruplardan herhangibir tek çift vb.. sonuç alamıyorum. elimde sağlam bir recno var (Fibplus kullanıyorum) .

yapı gereğide master detailide ayırmadan göstermem gerekiyor tek grid üstünde.

bunu boyamak için ne gibi bir ayraç kullanabilirim sizce :?

kayıt sayısı az olduğu için bir problem yok herhangibir bir ek alan(cal.) ekleyebilirm.

Kod: Tümünü seç

RecNo  Grup   GrupSatirNo
  1      11      1  <beyaz>
  2      11      2 <beyaz>
  3      22      1 <mavi>
  4      33      1 <Beyaz>
  5      33      2 <beyaz>
  6      44      1 <mavi>
  7      55      1 <beyaz>
  8      55      2 <beyaz>
  9      55      3  <beyaz> 
.-.-.-.-.-.-.-. ^_^
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Burada kullanabileceğin tek parametre GrupNo ve Renk.

İstiyorsun ki (algoritmik ifade):

Döngü:
- GrupNo a ise renk = mavi,
- GrupNo b ise renk = beyaz,
- Git Döngü


Gibi basitçe açıklayabiliriz. (Aslında algoritma tam karşılamadı kabul ediyorum)

Bunun için 2 global değişken tutmalısın. GrupNo ve Renk.

ONDrawGridHede sinde şu kontrolü yapacaksın.

DB.FieldByName('GrupNo').value = Grupno ise grupno daha değişmemiştir. Global renkteki renk ile paint et.

Eğer bunlar farklı ise global rengi değiştir. global grupno'yu değiştir ve Global renkteki renk ile paint et.

Gibi bir mantık kullanılabilir.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

selam @coder

bende ilk bunu düşündüm ve yaptım :) ama drawcolcell bu şekilde çalışmıyormuş, gridi ilk boyadığında doğru oluyor ama grid üstünde ileri geri gezince bir önceki datayı kabul ediyor :)

ya çok basit olduğuna eminim ama motor takıldı çıkmıyor :D
aklıma son gelen calculated alan üzerinde yapmak, query çalıştırıldığında kayıt numarası ile karşılaştırp eğer master kayıt no değişmiş ise bu özel recnoyu arttırmak. hım bu olabilr deniyorum ;)
.-.-.-.-.-.-.-. ^_^
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Evet haklısın. Calculated bir alanda bu bilgiyi saklamak ve buna göre paint ettirmek daha güzel bir çözüm.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Hatta güzel de değil doğru bir çözüm. :D
Cevapla