如何使dbgrid中奇数行与偶数行颜色不同
解决方案 »
- 表关联问题,向表中写入一条纪录,其中的一个字段值由另一个表所得,请问SQL语句如何写?
- delphi access 两个表的结构相同,偶想把表1的几列内容考到表2中,不知道该如何实现?
- www.51cv.net www.51cv.com
- 麻烦介绍几个好的 Delphi 的 Blog (VCL,构架方面)。
- KeyDown事件
- 求一个例子,两个运行程序如何用消息来通讯的。
- 循环取出所有数据~
- 在线等待,关闭mdi子窗体的时候为什么是最小化,关不上
- 南昌的程序员!!!通知!!!
- 如何使DESKTOP为不可点击,即是使MOUSE为无效状态,但是MOUSE最好显示出来!(OS:WIN2K,DELPHI5)
- 我想在工作之外为其他公司做软件,多学点东西顺便赚些外快,谁能给点经验、途径、项目、收费标准等等,
- 帮忙!!!麦克风音量控制问题?
2、在dbgrid的CalcCellColors事件中进行判定,若id为偶数,设置ABrush.Color:=clblue,否则ABrush.Color:=clRed;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (DataCol div 2) = 0 then
begin
dbgrid1.canvas.brush.color:=clyellow; //整条记录颜色
dbgrid1.canvas.font.color:=clblue; //字体颜色
dbgrid1.canvas.fillrect(rect);
dbgrid1.defauldrawcolumncell(rect,datacol,column,state);
end
else begin
dbgrid1.canvas.brush.color:=clblue; //整条记录颜色
dbgrid1.canvas.font.color:=clblue; //字体颜色
dbgrid1.canvas.fillrect(rect);
dbgrid1.defauldrawcolumncell(rect,datacol,column,state);
end;
end;
end;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if ADOQuery1.RecNo mod 2 = 1 then
dbgrid1.Canvas.Brush.Color := clRed
else
dbgrid1.Canvas.Brush.Color := clBlue;
dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end;
第二位:方向错误,DataCol是列。
第三位:最好把ADOQuery1改成 TDbGrid(Sender).DataSource.DataSet
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if( gdSelected in State)then
//如果是被选中的
begin
DBGrid1.Canvas.Brush.Color:=clBlue;
//选中的背景色为clBlue
DBGrid1.Canvas.Font.Color:=clYellow;
//选中的字体颜色为clYellow
end
else
if self.DataSource1.DataSet.RecNo mod 2=1 then
//用self.DataSource1.DataSet.RecNo mod 2
//来判断行数产生隔行
DbGrid1.Canvas.Brush.Color:=clRed
else
DBGrid1.CanVas.Brush.Color:=clWhite;
DBGrid1.DefaultDrawcolumnCell(rect,DataCol,Column,State);
//其他默认
end;