DBGrid renklendirme hakkında 2

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
fazil14
Üye
Mesajlar: 46
Kayıt: 31 Ağu 2003 02:40
Konum: eskişehir

DBGrid renklendirme hakkında 2

Mesaj gönderen fazil14 »

iyi günler daha önce DBGrid'in istenen satırını renklendirmeyi sormuştum bana

dataset içindeki bir bilgiye göre;

DrawColumnCell
if DbGrid3.DataSource.DataSet.FieldByName('print').Value = 't' then
begin // irsaliye yazdırılmış ise skyblue renkte
DbGrid3.Canvas.Font.Color := clNavy;
DbGrid3.Canvas.Brush.Color := clSkyBlue;
DbGrid3.Canvas.FillRect(Rect);
DbGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

kayıt no.suna göre
DrawDataCell
if odd(DBGrid1.DataSource.DataSet.RecNo) then
DBGrid1.Canvas.Brush.Color := clWhite
else
DBGrid1.Canvas.Brush.Color := clSkyBlue;
DBGrid1.DefaultDrawDataCell(Rect, Field, State);


bu kodları gönderdiniz çok teşekkür ediyorum ama

DbGrid3.Canvas.FillRect(Rect);
DbGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);

bu satırlarda
Rect ve DefaultDrawColumnCell(Rect, DataCol, Column, State);

Rect, datacol, column, state nedir bir kısmını çözemedim
örneklendirirseniz ve açıklarsanız sevinirim ilgilendiğiniz için teşekkürler..
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7588
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Hocam soruları ilgili başlığın altına atarsan daha doğru olur. Hem konu daha net anlaşılır.

Kolay gelsin.
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1526
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if DbGrid3.DataSource.DataSet.FieldByName('print').Value = 't' then 
  begin // irsaliye yazdırılmış ise skyblue renkte 
    DbGrid3.Canvas.Font.Color := clNavy; 
    DbGrid3.Canvas.Brush.Color := clSkyBlue; 
    DbGrid3.Canvas.FillRect(Rect); 
    DbGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State); 
  end;
end;
rect, datacol, column state dbgrid'in drawcolumncell olayının altığı parametrelerdir.

Kod: Tümünü seç

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
  if odd(DBGrid1.DataSource.DataSet.RecNo) then 
    DBGrid1.Canvas.Brush.Color := clWhite 
  else 
    DBGrid1.Canvas.Brush.Color := clSkyBlue; 
  DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;
rect, field, state de dbgrid'in DrawDataCell olayının aldığı parametrelerdir.
const ifadesinden de anlaşılacağı gibi sabittirler.
dbgrid in hangi satırını renklendireceğini anladığı sabitler
yanlış biliyorsam düzeltin;
rect = rectangle den geliyor, satırdaki her bir hücre,
column dbgrid deki kolon,
field dataset deki alan,
state de dateset in durumu (Edit, Insert)
sanıyorum bu şekilde..
kolaygelsin..
Cevapla