DBGrid1 Satır Renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

aslangeri yazdı:s.a.
recep abiye ek olarak

Kod: Tümünü seç

if State = GDFocused then
yerine

Kod: Tümünü seç

if (gdfocused in state)
şeklinde kullanırsan daha sağlam olur kanaatindeyim.
kolay gelsin.
Doğrusu da bu şekilde olmalı. Ben sadece bloklamaya baktım, kodlara bakmamıştım :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
M_D_5
Üye
Mesajlar: 39
Kayıt: 06 Nis 2006 01:53

Mesaj gönderen M_D_5 »

aslangeri yazdı:s.a.

Kod: Tümünü seç

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
  Begin
      if (dbgrid1.datasource.dataset.recno mod 2) =0 
      then DBGrid1.Canvas.Brush.Color := clGreen
      else DBGrid1.Canvas.Brush.Color := clRed;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);     
    end;
end.
şeklinde bi dene.
Hocam

if (dbgrid1.datasource.dataset.recno mod 2) =0
bunu ve
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
burayı açıklarsan çok sevinirm. Delphide yeniyim.. Aradığım kodlar bunlar ama. Anlamadan geçmek istemiyorum
Php & Delphi Coder
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Anladığım kadarı ile ben anlatmaya çalışayım. Dbgridin hücre çizme olayına yazılmış bu kod. Yani her hücre çizilmden ya da çizilirken (bakmak lazım ne zaman olduğuna) bu kodlar çalışıyor. mod matematiksel bir ifade olup x mod y x'in y'ye bölümünde kalanı verir.

Kod: Tümünü seç

if (dbgrid1.datasource.dataset.recno mod 2) =0 
burada dbgrid'in hücresi çizilirken o hücrenin kaçıncı kayıtta olduğuna bekılıp mod 2 = 0 ile tek sıralı satır mı çift sıralı satır mı olduğuna bakılıyor. Tek ise şu renge boya çift ise bu renge boya deniliyor.

Kod: Tümünü seç

DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
bunu da bir açıklayan bulunur elbet, ben anlayamadım da :oops:
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
@hdayi
o sorduğun kısım boyama ve texleri yazma işini yapan kısım.
o olmadan önce
dbgrid in canvasına rectangle çizdirip textoutla içine text i yazdırıyorduk
o geldikten sonra rectangle ve textout un işini o yapıyor.

dbgrid in defaultdraw ı false ediliyor.
program biizm yazdığımız kodlara bakyor
biz rengleri,fontu vs. ayarlıyoruz ve
default draw ı çağırıyoruz.

umarım anlatabilmişimdir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Eyvallah :)
(Kurtlar Vadisivari oldu ama neyse ;) )


Kolay Gelsin..
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Kod: Tümünü seç

procedure TSform.ALLsipDBGridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
Begin
      if (ALLsipDBGrid.datasource.dataset.recno mod 2) =0
      then ALLsipDBGrid.Canvas.Brush.Color := clGreen
      else ALLsipDBGrid.Canvas.Brush.Color := clRed;
      ALLsipDBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
Benim bu kodda ne problem var tüm satırlarım Kırmızı oldu :) :lol:
Cevapla