DBGrid的色彩

来源:互联网 发布:ru域名注册 编辑:程序博客网 时间:2024/06/11 18:28

改变DBGrid单一的颜色,在DBGRID的DrawColumnCell写入一下代码。
var i :integer;   //方案1
begin
  if gdSelected in State then Exit;                                // DBGRID标题栏的设置
    for i :=0 to (Sender as TDBGrid).Columns.Count-1 do
    begin
      (Sender as TDBGrid).Columns[i].Title.Font.Name :='宋体';
      (Sender as TDBGrid).Columns[i].Title.Font.Size :=9;
      (Sender as TDBGrid).Columns[i].Title.Font.Color :=$000000ff;
      (Sender as TDBGrid).Columns[i].Title.Color :=$0000ff00;
    end;
end
 
var i:integer;        //方案2  隔行变色
begin
  if gdSelected in State then Exit;
    if ADODataSet1.RecNo mod 2 = 0 then
      (Sender as TDBGrid).Canvas.Brush.Color := clinfobk
  else
    (Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223);

  DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
  with (Sender as TDBGrid).Canvas do
  begin
    Pen.Color := $00ff0000;
    MoveTo(Rect.Left, Rect.Bottom);
    LineTo(Rect.Right, Rect.Bottom);
    Pen.Color := clbtnface;
    MoveTo(Rect.Right, Rect.Top);
    LineTo(Rect.Right, Rect.Bottom);
  end;
end;

begin  //方案3  隔列变色。
Case DataCol Mod 2 = 0 of
True: DbGrid1.Canvas.Brush.Color:= clInactiveCaptionText;
False: DbGrid1.Canvas.Brush.Color:= clCream;
End;
DbGrid1.Canvas.Pen.Mode:=pmMask;
DbGrid1.DefaultDrawColumnCell (Rect,DataCol,Column,State);
end;