dBGRİD Satır Renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
bilmusa
Üye
Mesajlar: 18
Kayıt: 21 Nis 2004 11:31

dBGRİD Satır Renklendirme

Mesaj gönderen bilmusa »

Dbgridde Satırları renklendirmek istiyorum
Bilindik bir yöntem var
Drwacell yada drwacolumn olayında datasetin kayıt numarası kontrol edilerek satır renklendiriliyor .
Yalnız bir problem yaşıyorum çünkü kayıtları getirirken kayıt numarası (-1)
olarak gözüküyor ondan dolayı kontrol yapamıyorum ve renklendiriyorum
Farklı bir yöntem bilen varsa yardımcı olursa sevinirim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

+1 deyip kontrol et. ama bu iyi bir çözüm değil :?

Kod: Tümünü seç

if odd(DBGrid1.DataSource.DataSet.RecNo) then .... else ....
i dene.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

Selam.

Kardeş faydası olur mu bilmem ama istediğin böyle birşeyse bir fikir verebilir

Kod: Tümünü seç

  procedure Tstokhareket.DBGrid1DrawColumnCell(Sender: TObject; 
  const Rect: TRect; DataCol: Integer; Column: TColumn; 
  State: TGridDrawState); 
  begin 
  with DBGrid1.Canvas do 
  begin 
    Brush.Color :=$00FEFAF1; 
    FillRect(rect); 
    if (gdSelected in State) then 
    begin 
      brush.color := $00D7FFD7; 
      Font.Color := Clred; 
      Font.Size:=10; 
      FillRect(rect); 
    end; 
  end; 
  DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); 
end;
bilmusa
Üye
Mesajlar: 18
Kayıt: 21 Nis 2004 11:31

Mesaj gönderen bilmusa »

rsimsek yazdı:+1 deyip kontrol et. ama bu iyi bir çözüm değil :?

Kod: Tümünü seç

if odd(DBGrid1.DataSource.DataSet.RecNo) then .... else ....
i dene.
Hocam İlginiz için sağolun ama bütün kayıtlarda kayıt numarası -1 geliyor bir eklersek hepsi sıfır olacak ve ben bu koşulu verirsem bütün satırları renklendirmem gerekiyor
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

o zaman ikinci ve önerdiğim şekilde dene.. :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
Kacak
Üye
Mesajlar: 21
Kayıt: 05 Nis 2005 02:59
Konum: Ankara

Bir de bunu dene

Mesaj gönderen Kacak »

Şayet tablo veya query'den kayıtları listeliyor ve belli kriterlere uyan kayıtları farklı renge boyamak istiyorsan şu şekilde yapabilirsin.

Kod: Tümünü seç

procedure Tolay.DBGrid1DrawColumnCell(Sender: TObject; 
  const Rect: TRect; DataCol: Integer; Column: TColumn; 
  State: TGridDrawState); 
var
  limit,sayi: integer;
begin 
  if dm.q_limit_kontrol.active=true then
  Begin
    sayi:=DBGrid1.Datasource.Dataset.Fields[7].Ascurrency;//kontrol ettiğim alan sayı olduğu için
    limit:=strtocurr(edit1.text);//Bu sayıyla karşılaştırıyorum
    if sayi>=limit then
      DBGrid1.canvas.Brush.color:=clred // Kırmızı olsun
    else
      DBGrid1.canvas.Brush.color:=clblue // mavi olsun
  DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
Burada biri limitim var. Gridin bağlı olduğu tablo veya Querydeki bir alanı bu limitle karşılaştırdım, limiti aşıyorsa kırmızı, aşmıyorsa maviye boyadım.
Kolay gelsin.
Cevapla