原创 DBGrid中分行分列、单元格的颜色设置收藏

新一篇: DBGridEh设置固定列,用于统计记录数和平均数、总和 | 旧一篇: SQL Server信息存储——视图和表在数据库中的存储

(1)分行不同颜色设置;在DBGridEh1DrawColumnCell中写;

    if ADOQuery1.RecNo mod 2=0 then
    begin
        DBGridEh1.Canvas.Font.Color := clRed;
        DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end
    else begin
        DBGridEh1.Canvas.Font.Color := clGreen;
        DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

(2)分行不同背景颜色设置;在DBGridEh1DrawColumnCell中写;

    if ADOQuery1.RecNo mod 2=0 then
    begin
        DBGridEh1.Canvas.Brush.Color := clRed;
        DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end
    else begin
        DBGridEh1.Canvas.Brush.Color := clGreen;
        DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

(3)符合条件的单元格颜色或者背景颜色设置;在DBGridEh1DrawColumnCell中写;

    if Column.FieldName='价格' then
    begin
        if ADOQuery1.FieldByName('价格').AsFloat<0 then
        begin
            DBGridEh1.Canvas.Font.Color := clRed;
            DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
        end;
    end;

发表于 @ 2004年10月27日 11:00:00|评论(loading...)|编辑

新一篇: DBGridEh设置固定列,用于统计记录数和平均数、总和 | 旧一篇: SQL Server信息存储——视图和表在数据库中的存储

评论

#CrazyCock 发表于2004-10-27 11:52:00  IP: 221.7.240.*
有点很重要的地方需要设置,应该这样写才对。
if (ADOQuery1.RecNo mod 2=0) and (DBGridEh1.Row mod 2<>0) then
begin
DBGridEh1.Canvas.Brush.Color := clInfoBk;
DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

否则被点中的记录就不能用默认的模式显示了,而是强行画背景,导致看不清楚~~
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © crazycock