如何使Dbgrid隔行换颜色

fengtian 2000-08-11 08:49:00
我曾经用一些数据库,通过TABLE的RecNo属性实现了
可是用ACCESS数据库却实现不了,希望高手能提供更好的办法,最好详细一些!!
先谢谢了!!!!
...全文
382 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
superdelphi 2000-08-18
  • 打赏
  • 举报
回复
在Form上添加以下控件:
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOConnection1通过Microsoft Jet 4.0 OLE DB Provider和你的Access数据库连接。
ADOTable1、DataSource1、DBGrid怎样连接我就不说了,很简单的。
在在ONDrawColumnCell事件这样写上我的代码,就OK了。
我试过了,没问题呀!
欢迎来信交流。
fengtian 2000-08-18
  • 打赏
  • 举报
回复
superdelphi:
你好!谢谢你的帮助,你的方法可以,但是我现在用的是BDE连接不可以!
但不管怎样,我非常感谢你!再次感谢你!
以后有问题还会麻烦你的!!
fengtian 2000-08-17
  • 打赏
  • 举报
回复
我试过你的方法,其他数据库可以,但Access数据库不可以!不信,你可以试一试
superdelphi 2000-08-17
  • 打赏
  • 举报
回复
我的方法与你采用什么数据库无关,只要有DataSource 和DBGrid控件就可以的。
Try it.
wjt 2000-08-17
  • 打赏
  • 举报
回复
用俄罗斯的Rxlib中的中的RXdbgrid,应该
fengtian 2000-08-16
  • 打赏
  • 举报
回复
这些方法都不好使,我用的Access数据库!希望高手有更好的方法
superdelphi 2000-08-16
  • 打赏
  • 举报
回复
在ONDrawColumnCell事件这样写
inherited;
with DBGrid1 do
begin
if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
Begin
// Canvas.Font.Color :=ClYellow;
// Canvas.Brush.Color :=ClNavy;
End
else
begin
if DataSource1.DataSet.RecNo mod 2<>0 then
Canvas.brush.Color :=cl3dlight
else
Canvas.brush.Color :=clinfobk;
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State); //这行是关键
end;
Seoul 2000-08-16
  • 打赏
  • 举报
回复
设置全局变量 i:boolean;
在ONDrawColumnCell事件这样写
if i then
DBGrid1.Canvas.Brush.Color:=clBtnFace
else
DBGrid1.Canvas.Brush.Color:=clRed;
i:=not i;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawColumnCell (Rect,DataCol,Column,State);
deardelphi 2000-08-12
  • 打赏
  • 举报
回复
你可以用 TDBGridEh ,网上有的, csdn 中有EhLib1.54, 找不到再给你发。OK!!
continue 2000-08-12
  • 打赏
  • 举报
回复
我已经把我改写的DBgrid Email 出,欢迎使用在任何地方,但须告知在下。
它的特点是和DBgrid完全兼容,小,编译绝对不多占空间,无明显闪烁。

难得吹一吹,哈哈哈哈。
zsr 2000-08-12
  • 打赏
  • 举报
回复
用recno不适应大型数据库,可增加一变量,判断该值来改动颜色。

5,379

社区成员

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

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