怎样使dbgrid的背景色的奇数行和偶数行不同,希望高手指点..

treezzh 2001-10-14 12:40:06
在使用dbgrid时,
怎样使dbgrid的背景色的奇数行和偶数行不同,希望高手指点..
...全文
106 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
王集鹄 2001-11-27
  • 打赏
  • 举报
回复
procedure TFormDocBrowse.DBGridBodyDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if not Odd(TDBGrid(Sender).DataSource.DataSet.RecNo) then begin
TDBGrid(Sender).Canvas.Brush.Color := clSkyBlue;
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
hunter_zxy 2001-11-27
  • 打赏
  • 举报
回复
if (tbgrid(dbgrid1).row mod 2)=0 then
dbgrid1.canvas.color:=clbtnface
else
dbgrid1.canvas.color:=clwhite
songlichao 2001-10-14
  • 打赏
  • 举报
回复
{with Dbgrid_List_mx do
if datasource.dataset.active then
if SumList.RecNo mod 2 = 1 then
Background := $00FFC4C4
else
Background := $00FFDDDD;
}

用的是DBGridEh
tikkypeng 2001-10-14
  • 打赏
  • 举报
回复
搜索以前的帖子~太多了
peihexian 2001-10-14
  • 打赏
  • 举报
回复
gz
jinhe 2001-10-14
  • 打赏
  • 举报
回复
属性dbGrid1.defaultdrawing:=false
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
s:string;
begin
if (DBGrid1.DataSource.DataSet.RecNo) mod 2 = 0 then
begin
DBGrid1.Canvas.pen.Color:= clblack;
DBGrid1.Canvas.brush.Color:= clred;
s:=Field.AsString;
DBGrid1.Canvas.FillRect(rect);
DBGrid1.Canvas.TextOut(rect.Left,Rect.top,s);
end
else
begin
end;
DBGrid1.DefaultDrawing:=true;
end;

试试这个吧
jinhe 2001-10-14
  • 打赏
  • 举报
回复
编译是有错
hunter_zxy 2001-10-14
  • 打赏
  • 举报
回复
dbgrid1.canvas.lock;
if dataset.recno mod 2 =1 then
dbgrid1.canvas.brush.color:=clbtnface
else
dbgrid1.canvas.brush.color:=clwhite;
dbgrid1.canvas.unlock;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧