if DBGrid1.DataSource.DataSet.RecNo mod 2 = 0 then // çift sayılı alanların rengi 0,2,4....
Dbgrid1.Canvas.brush.Color := $00AEEBF0
else
if DBGrid1.DataSource.DataSet.RecNo mod 2 = 1 then // tek sayılı alanların rengi 1,3,5...
Dbgrid1.Canvas.Brush.Color := clWindow;
with DBGrid1.Canvas do
begin
if (gdSelected in State) then // seçili alanın renk ve yazı fontu
begin
Brush.Color := $00E2D032; //seçim rengi
Font.Color := ClBlack; // yazı rengi
Font.Size:=10; // yazı büyüklüğü
Font.Style := font.Style + [fsBold]; // yazı kalın olsun
FillRect(rect);
end;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Teşekkürler hocam . Birde benim bir sorum olacak .
Datasette locate yaptıktan sonra , dbgrid üstünde konumlandığı satırı boyayabilirmiyiz.yani tek satır rengi değişecek .
var SatirYeri:TBookmarkStr;
procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
SatirYeri:=Table1.Bookmark;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if DBGrid1.DataSource.DataSet.RecNo mod 2 = 0 then // çift sayılı alanların rengi 0,2,4....
Dbgrid1.Canvas.brush.Color := $00AEEBF0
else
if DBGrid1.DataSource.DataSet.RecNo mod 2 = 1 then // tek sayılı alanların rengi 1,3,5...
Dbgrid1.Canvas.Brush.Color := clWindow;
with DBGrid1.Canvas do
begin
if (gdSelected in State) then // seçili alanın renk ve yazı fontu
begin
Brush.Color := $00E2D032; //seçim rengi
Font.Color := ClBlack; // yazı rengi
Font.Size:=10; // yazı büyüklüğü
Font.Style := font.Style + [fsBold]; // yazı kalın olsun
FillRect(rect);
end else if Table1.Bookmark=SatirYeri then begin //üzerinde bulunulan satır
Brush.Color := clAqua; //seçim rengi
Font.Color := ClBlack; // yazı rengi
Font.Size:=10; // yazı büyüklüğü
Font.Style := font.Style + [fsBold]; // yazı kalın olsun
FillRect(rect);
end;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Şaban Şahin AKMAN
_________________ Derin olan kuyu değil kısa olan iptir. - .
Benim söyle bir sorunum var BDE nin Query sini kullanınca RecNO sürekli -1 döndüğü için renklendirme yapmıyor, IBQuery kullanınca renklendirme işlemi yapıyor sebebi nedir ?
procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Icon: TBitmap;
begin
Icon:=TBitmap.Create;
If (gdSelected in state) then // eğer seçili ise
begin
DBGrid2.Canvas.Brush.Color := clBlack; // zemin rengi
DBGrid2.Canvas.Font.Color := clWhite; // font rengi
end
else if (DBGrid2.datasource.dataset.recno mod 2) =0
then DBGrid2.Canvas.Brush.Color := clSkyBlue
else DBGrid2.Canvas.Brush.Color := clWhite;
DBGrid2.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Label3.Caption := (inttostr (Query2.RecNo)); //Recno Kontrol
Query2.Last;