dbgrid tarihsel alan renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Ahmet ALTUNTAŞ
Üye
Mesajlar: 94
Kayıt: 10 Tem 2010 08:05
Konum: TEKİRDAĞ

dbgrid tarihsel alan renklendirme

Mesaj gönderen Ahmet ALTUNTAŞ »

Merhaba
Dbgrid de tarih fieldini reklendirmem gerek iki tarih arasında 3 ay kalmışsa sarı yapmam gerek rengini ama tarihsel alanda bunu nasıl yapıcam bilmiyorum.
Yardımcı olabilirnmisiniz.
Ahmet ALTUNTAŞ
MCP - MCTS
MCSA+S - MCSE+S

Başarı Bir Yolculuktur, Varış Noktası Değil...!
Kullanıcı avatarı
a.mikayil
Üye
Mesajlar: 83
Kayıt: 07 Ağu 2010 01:55

Re: dbgrid tarihsel alan renklendirme

Mesaj gönderen a.mikayil »

Aslında ben 2 tarih arasındaki aralık koşulunu anlayamadım ama koşulu da aşağıda belirttiğim yere yazarsanız inşallah olacaktır.Bi de DBGridin Default Drawing özelliğini False yapmanız gerek.

Kod: Tümünü seç

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
  DBGrid1.Canvas.Font.Color:=clBlack;


  if (gdFocused in State) then
  begin
    DBGrid1.Canvas.Brush.Color:=clBlack;
    DBGrid1.Canvas.Font.Color:=clWhite;

  end

  else

    if (Field.FieldName='TARIH') then
  begin
    // şuraya koşulunuzu yazın if .... then 
       DBGrid1.Canvas.Brush.Color:=clYellow;
  end
  
  else
    DBGrid1.Canvas.Brush.Color:=clWhite;

  DBGrid1.DefaultDrawDataCell(Rect,Field,State);
end;
Kolay gele
İstikrar sürsün, Türkiye'm büyüsün inşallah.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: dbgrid tarihsel alan renklendirme

Mesaj gönderen conari »

Kod: Tümünü seç

procedure TFrmKalite.DBGKaliteDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
 if ADOKaliteGrid.active=true then //dataset açıksa işlemi yaptırıyoruz.
   Begin

/// bu kısıma sende gerek yok
      if (DBGkalite.datasource.dataset.recno mod 2) =0  then
       begin
        DBGkalite.Canvas.Brush.Color := cllime;
       end
       else
       begin
     DBGkalite.Canvas.Brush.Color := $008AE6D1;
      end;
   If (gdSelected in state) then // eğer seçili ise
     begin
      DBGkalite.Canvas.Font.Color:=clblue; // Fontun rengini değiştirir..
      DBGkalite.Canvas.Font.Style:=[fsbold];
      End;
     End;
/// bu kısıma sende gerek yok

  try
   if Column.Index >11 then
   if column.field.asinteger >0   then begin // sen burada tarihi kontrol etmelisin
   DBGkalite.Canvas.Font.Color:=clred
   end else begin
   DBGkalite.Canvas.Font.Color:=clblack;
   end;
   except

   end;
   DBGkalite.DefaultDrawColumnCell(Rect, DataCol, Column, State);
 end
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
Ahmet ALTUNTAŞ
Üye
Mesajlar: 94
Kayıt: 10 Tem 2010 08:05
Konum: TEKİRDAĞ

Re: dbgrid tarihsel alan renklendirme

Mesaj gönderen Ahmet ALTUNTAŞ »

çok teşekkür ederim arkadaşlar.
Ahmet ALTUNTAŞ
MCP - MCTS
MCSA+S - MCSE+S

Başarı Bir Yolculuktur, Varış Noktası Değil...!
Cevapla