View Single Post
Eski 09/03/2007, 23:34   #3 (permalink)
Ansugo
Registered User
 
Üyelik Tarihi: 07/2002
Mesaj: 6,398
Varsayılan

About Delphi de ki Coloring DBGrid makalesindeki yontem isini gorecektir. Bir de daha once belirttigimiz DBGrid’de Renklendirme Sorunu başlıklı bir konumuz var.

Ayrica gene not olarak duseyim.

Veritabanindan gelen veride reklendirme yapabilmek icin 1-0 seklinde bir kistasiniz yoksa oncelikle global olarak;

Kod:
DbGridRenk : integer;
seklinde bir tanim yapin.

Daha sonra DbGrid'in DrawColumnCell ozelliginin basina su satirlari ekleyin :

Kod:
  if Column.FieldName = 'KOLON ADI' then
  begin
    if DbGridRenk = 1 then
      DbGridRenk := 0
    else
      DbGridRenk := 1;
  end;
Buradaki KOLON ADI olan kısım DbGrid Columns'daki ilk kolonunuzun adı olarak değiştirin.

Bu kodlarin hemen altinda su sekilde bir cizim yapma teknigini ekleyin :

Kod:
  if ( DbGridRenk = 1 ) then
    myDrawColumnCell(Rect,DataCol,Column,State,COLOR_DBGRID_ACTIVE,COLOR_DBGRID_ACTIVE_FONT,DbGrid1);
  if ( DbGridRenk = 0 ) then
    myDrawColumnCell(Rect,DataCol,Column,State,COLOR_DBGRID_PASSIVE,OLOR_DBGRID_PASSIVE_FONT,DbGrid1);
Burada;

Kod:
COLOR_DBGRID_ACTIVE
COLOR_DBGRID_ACTIVE_FONT
COLOR_DBGRID_PASSIVE
COLOR_DBGRID_PASSIVE_FONT
degerleri formda daha onceden tanimlanmis const tipi sabitler.

myDrawColumnCell procedurunuzde soyle birsey olabilir :

Kod:
procedure TForm1.myDrawColumnCell(const Rect: TRect; DataCol: Integer; Column: TColumn;State: TGridDrawState;BgColor:TColor;FontColor:TColor;Grid:DbGrid);
begin
  (Grid as TDbGrid).Canvas.Brush.Color := BgColor;
  (Grid as TDbGrid).Canvas.Font.Color  := FontColor;
  (Grid as TDbGrid).DefaultDrawColumnCell(Rect,Datacol,Column,State);

  if (gdFocused in State) or (gdSelected in State) then
  begin
    (Grid as TDbGrid).Canvas.Brush.Color := COLOR_DBGRID_HIGHLIGHT;
    (Grid as TDbGrid).Canvas.Font.Color  := COLOR_DBGRID_HIGHLIGHT_FONT;
    (Grid as TDbGrid).DefaultDrawColumnCell(Rect,DataCol,Column,State);
  end;
end;
Burada ek olarak gördüğünüz :

Kod:
COLOR_DBGRID_HIGHLIGHT
COLOR_DBGRID_HIGHLIGHT_FONT
daha önce tanımlanmış const tipi sabitler. Yukarıda da referans verdiğim şu konuda açıklamıştım.
Ansugo hatta değil   Alıntı Yaparak Yanıtla