DbGrid'deki Verileri Sorguya Göre Renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
manaz
Üye
Mesajlar: 23
Kayıt: 02 May 2009 06:25
Konum: Denizli-Kale

DbGrid'deki Verileri Sorguya Göre Renklendirme

Mesaj gönderen manaz »

Arkadaşlar Personel Programı yapıyorum.
Aktif tablosunun içinde Çıkış Tarihi var.
Arama Düğmesinden Arama yaptırdığımda DBGridde, Çıkış Tarihi yazılı olanların Ad ve Soyadları ya da tüm satırdaki veriler renkli olsun. Örnek: Kırmızı
Çıkış Tarihi Boş olanlar yani çalışmaya devam edenler ise normal siyah renkte gelsin.
Ben şöyle bişey yaptım ama en sonki yazı rengi kırmızı ise sonrakileride kırmızı, siyah ise sonrakileride siyah gösteriyor.

Begin
form3.ADOQuery1.Close;
if form3.ADOQuery1.SQL.Text ='select * from aktif where cikis_tarihi null' then
begin
form3.DBGrid1.columns[1].Font.Color:=clred;
form3.DBGrid1.columns[2].Font.Color:=clred;
end
else
begin
form3.DBGrid1.columns[1].Font.Color:=clblack;
form3.DBGrid1.columns[2].Font.Color:=clblack
end;

Yardımcı Olursanız sevinirim arkadaşlar. Forumda arama yaptırdım ama sonuca ulaşamadım. Saygılar.
Ertugrul
Üye
Mesajlar: 136
Kayıt: 09 May 2009 12:05

Re: DbGrid'deki Verileri Sorguya Göre Renklendirme

Mesaj gönderen Ertugrul »

DBGrid1DrawColumnCell eventine bu sekilde yazmayi deneyin

Kod: Tümünü seç

procedure TForm1.DBGrid1DrawColumnCell
   (Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn;
    State: TGridDrawState);
begin
if VarIsNull(ADOQuery1.FieldByName('cikis_tarihi').Value) then
  DBGrid1.Canvas.Font.Color:=clRed;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Kullanıcı avatarı
manaz
Üye
Mesajlar: 23
Kayıt: 02 May 2009 06:25
Konum: Denizli-Kale

Re: DbGrid'deki Verileri Sorguya Göre Renklendirme

Mesaj gönderen manaz »

Ertugrul yazdı:DBGrid1DrawColumnCell eventine bu sekilde yazmayi deneyin

Kod: Tümünü seç

procedure TForm1.DBGrid1DrawColumnCell
   (Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn;
    State: TGridDrawState);
begin
if VarIsNull(ADOQuery1.FieldByName('cikis_tarihi').Value) then
  DBGrid1.Canvas.Font.Color:=clRed;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

Çok Sağol Dostum. Sadece not Varisnull değişikliğini yaptım.

procedure TForm3.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Not VarisNull(ADOQuery1.FieldByName('cikis_tarihi').Value) then
begin
DBGrid1.Canvas.Font.Color:=clRed;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;

Tekrar Teşekkür ediyorum. İyi günler.
Cevapla