StringGrid Renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
şahmeran
Üye
Mesajlar: 17
Kayıt: 06 Ağu 2003 09:37
Konum: İstanbul

StringGrid Renklendirme

Mesaj gönderen şahmeran »

S.A

Arkadaşlar, Stringgrid de herbir satırın rengini kendim ayarlamak istiyorum, bunun için ne yapabilirim?

Teşekkür Ederim. İyi Çalışmalar.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

2 yöntemi var
İlki OnDrawCell de bunu kendin yaparsın
ikinci yöntem ise bu işi yapan 3parti bileşenlerden kullanabilirsin, Bunların Source u olanlarını kullanmanı öneririm, ve sadece alıp kullanma, yazılmış kodu incele nasıl bir mantık ve yöntem kullanılmış
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

selamlar..

hojam tablomdadaki satırlar daha kolay okunsun diye bir satırı bir renk diğer satırı başkarenk yapmayı düşünüyordum,

Kod: Tümünü seç

.....
if odd(QueTablemyTableKEYFIELD.AsInteger) then
  Color:=$FFFBF0
else
  Color:=$FFFFFF;
.....
DBGrid1.Canvas.Brush.Color:=Color;
DbGrid1.Canvas.FillRect(Rect);
DbGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
tarzında bi uygulamay yaptım, esasında işimi görüyor böyle bir mantık ama, aradan bir satır silince veya (başka bir tabloda query sonucu alınca) bu işe yaramıyor(atlayarak gitmiyor yani).. acaba bu odd(xx) içinde kullanabileceğim tablodaki verinin satır nosunu tutan bi fonksiyon varmı?
gelecek kaygısıyla harici component kullanmak istemiyorum..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- Siz tabloya kaydolan kayıt numarasını sorguladığınızdan, bu alana ait kayıtlar baştan aşağı güncellenirse istediğiniz olur ki bu güncelleme çok anlamsız ve mantıksız olur... (eğer gereği yoksa)

- Recno'ya göre bu işlemi yaparsanız isteğiniz gibi aradan eksilme olsa dahi buna göre yine bir satır bir renk, diğer satır başka renk olacaktır...

Kod: Tümünü seç

..... 
if odd(QueTablemyTable.RecNo) then 
  Color:=$FFFBF0 
else 
  Color:=$FFFFFF; 
..... 
şeklinde...
Resim
Resim ....Resim
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

sağolun ,bende RECNo hep -1 dönüyor,
nedeni ne olabilir?

viewtopic.php?t=667&highlight=%2Arecno%2Aörneğinde bahsedildiği gibibir calculated alan yapıp onu arttırmayı denedim.. onuda sürekli olarak -1 atıyor..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- DBGrid'in sonuçları aldığı DataSource'un Query'sini belirttiğinize eminsiniz değil mi ? Bir de Query Active değilse -1 gelmesi doğal...

- Dilerseniz kontrol için kodunuzu şöyle yazın...

Kod: Tümünü seç

..... 
if DBGrid1.DataSource.DataSet.Active then 
begin
  if odd(DBGrid1.DataSource.DataSet.Recno) 
  then Color:=$FFFBF0 
  else Color:=$FFFFFF; 
end;
.....
Resim
Resim ....Resim
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

RecNo Kullandığın database ve component ile doğru orantılı. Mesala IBX de RecordCount dahi doğru gelmez. Bunun için FechAll (yazılım hatası olabilir) kullanılması gerek.
Eğer Kullandığın grid standart DBGrid ise bunu TStringGrid ile cast ederek yani

Kod: Tümünü seç

TStringGrid(myDBGrid).Row
ile row numarasına göre işelm yaptırtabilirsin.
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

mrmcop yazdı:- DBGrid'in sonuçları aldığı DataSource'un Query'sini belirttiğinize eminsiniz değil mi ? Bir de Query Active değilse -1 gelmesi doğal...
tablolar bağlantılar hepsi doğrudur hocam sanırım problem IB'den kaynaklanıyor. garip bir sistem kullanıyorum.. interbase6.5-BDE-delphi7
TStringGrid(myDBGrid).Row olayıda olmadı.. sanırım BDE biraz burda saçmaladı...

bu yüzden bu güsel renklendirme olayını askıya alıcam galiba...
(ama çok üzülmemek lazım aynı problem exceldede var. :lol: )
Cevapla