//总结:DBgrid中的.colums[i]返回TColumn对象,TColumn对象的属性有:color,font,title
其中color为背景色,font为字体对象,title返回TcolumnTitle对象,该对象有除也有
color,font属性外,还有一个Caption属性,用于设置每一列的title的;//====================================================================================
效果:当用户单击DBGrid中的某列时,整列的颜色都改变,同时,选择之外的其他列的颜色
回复原颜色(省缺为:clwindow)
procedure TForm1.dbgridCellClick(Column: TColumn);
var i:integer;
selectindex:integer;
oldcolor : TColor;
begin
oldcolor := clwindow;
selectindex := dbgrid.selectedIndex;//保存选择的列号
for i:= 0 to dbgrid.Columns.count -1 do
begin
if i = selectindex then
dbgrid.columns[i].color := clyellow
else
dbgrid.columns[i].color := oldcolor;
end;
end;
//====================================================================================//总结:DBrgid中的OnDrawColumnCell事件是可以控制DBrgid中每一行的背景颜色和字体颜色和边框颜色
,其中就是利用DBgrid中的Canvas来控制,只不过,每次控制是DBGrid中的每一行而尔
参数说明:rect是当前的Cell矩形框坐标,
DataCol :是Columns中的Index号
column :是Colums对象
state :是描述当前的cell的状态:
gdSelected 选中
gdFocused 得到输入焦点
gdFixed 固定CELL 例如:根据查询的结果来决定每行颜色
procedure TForm1.dbgridDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if query.Active then
begin
if query.Fields[1].asstring = 'WWWW' then
dbgrid.Canvas.brush.color := clred //只有这行是红色,brush用于控制每个cell的背景色
else
dbgrid.Canvas.brush.color := clpurple;//其他为紫色
end;
dbgrid.DefaultDrawColumnCell(rect,datacol,column,state);//调用省缺的事件,一定要调用
end;
其中color为背景色,font为字体对象,title返回TcolumnTitle对象,该对象有除也有
color,font属性外,还有一个Caption属性,用于设置每一列的title的;//====================================================================================
效果:当用户单击DBGrid中的某列时,整列的颜色都改变,同时,选择之外的其他列的颜色
回复原颜色(省缺为:clwindow)
procedure TForm1.dbgridCellClick(Column: TColumn);
var i:integer;
selectindex:integer;
oldcolor : TColor;
begin
oldcolor := clwindow;
selectindex := dbgrid.selectedIndex;//保存选择的列号
for i:= 0 to dbgrid.Columns.count -1 do
begin
if i = selectindex then
dbgrid.columns[i].color := clyellow
else
dbgrid.columns[i].color := oldcolor;
end;
end;
//====================================================================================//总结:DBrgid中的OnDrawColumnCell事件是可以控制DBrgid中每一行的背景颜色和字体颜色和边框颜色
,其中就是利用DBgrid中的Canvas来控制,只不过,每次控制是DBGrid中的每一行而尔
参数说明:rect是当前的Cell矩形框坐标,
DataCol :是Columns中的Index号
column :是Colums对象
state :是描述当前的cell的状态:
gdSelected 选中
gdFocused 得到输入焦点
gdFixed 固定CELL 例如:根据查询的结果来决定每行颜色
procedure TForm1.dbgridDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if query.Active then
begin
if query.Fields[1].asstring = 'WWWW' then
dbgrid.Canvas.brush.color := clred //只有这行是红色,brush用于控制每个cell的背景色
else
dbgrid.Canvas.brush.color := clpurple;//其他为紫色
end;
dbgrid.DefaultDrawColumnCell(rect,datacol,column,state);//调用省缺的事件,一定要调用
end;
{
TDBGrid *Grid=(TDBGrid*)Sender; if (DataSet->RecNo%2==0)
Grid->Canvas->Brush->Color=clWhite;
else
Grid->Canvas->Brush->Color=TColor(RGB(245,245,245)); DefaultDrawDataCell(Rect,Field,State);
}