dbgrid hücre rengi için bu kodda ne hata var

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

dbgrid hücre rengi için bu kodda ne hata var

Mesaj gönderen kazimates »

Kod: Tümünü seç

procedure TTelefTipForm.DBGrid1DrawDataCell(Sender: TObject;
  const Rect: TRect; Field: TField; State: TGridDrawState);
begin
  if dm1.ADOTelefTipTable.FieldByName('KAYITNO').AsInteger=2 then
  begin
     DBGrid1.Canvas.Brush.Color := clRed;
  end else
  begin
    DBGrid1.Canvas.Brush.Color := clSkyBlue;
  end;
  DBGrid1.DefaultDrawDataCell(Rect, Field, State); 

end;
diye bir komut var ve ben aslında sadece dbgridin 1.kolonundaki hücrelere bakmasını ve içinde 2 olan hücreyi renklendirmesini istedim ama kod hücre yerine satırı renklendirdi burada nerede hata yapıyorum bu arada delphi6 kullanmaktayım
teşekkürler.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
1.lütfen bundan sonra kodlarınızı code tagı içine alın.
2.sütünu kontrol ettirmemişsin. eğer sütün ikinci sütunsa diye yapılması gereken kontrol hani?
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

hücre rengi değiştirme cevabı

Mesaj gönderen kazimates »

öncelikle yaptığım hatadan dolayı beni mazur görmenizi arzu edior vede özür diliyorum
bu arada cevabı şu şekilde yazınca çözümü elde edebildim ve paylaşmak istedim ki en azından konu açıkta kalmasın

Kod: Tümünü seç


procedure TTelefTipForm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
   if Column.FieldName = 'KAYITNO' then //only do for the cell displaying KAYITNO
//    if (Column.Field.AsInteger mod 2 <> 0) then begin  //burası 
//tekleri satırları seçer
    if (Column.Field.AsInteger=3) then begin
      DBGrid1.Canvas.Brush.Color := clGreen;
      DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      DBGrid1.Canvas.Brush.Color := clRed;
    end;
end;

Cevapla