首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 设置DBGrid当前行的颜色
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lance
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-23 12:02:12 楼主
    http://www.cnblogs.com/lance2088/archive/2008/08/21/1272976.html

    定义个子类MyDBGrid继承TDBGrid,以提供访问父类保护成员的接口。
    type
      MyDBGrid=class(TDBGrid)
      private

      public
        function GetRow:integer;
        function IsCurrent:boolean;
    end;




    function MyDBGrid.GetRow: integer;
    begin
      result:=row;
    end;

    function MyDBGrid.IsCurrent: boolean;
    begin
      result:=(DataLink.ActiveRecord=row-1);
    end;



    判断是否是当前行。

    type
      TGlobal=class

          class function IsCurrentRow(AMyDBGrid:MyDBGrid):boolean;

    end;


    class function TGlobal.IsCurrentRow(AMyDBGrid: MyDBGrid): boolean;
    begin
      result:=AMyDBGrid.IsCurrent;
    end;



    在DrawColumnCell事件中。



    procedure TFormMain.MyDBGridDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      if TGlobal.IsCurrentRow(MYDBGrid(Sender))

        begin
            (Sender as TDBGrid).Canvas.Brush.Color :=$000080FF;

        end
        else
        begin
          if (Sender as TDBGrid).DataSource.DataSet.RecNo  mod 2 =0 then
            (Sender as TDBGrid).Canvas.Brush.Color :=rgb(246,246,246);  //$00F3F3F3; //定义背景颜色
        end;
        (Sender as TDBGrid).DefaultDrawColumnCell(Rect,DataCol,Column,State);

    end;



    效果:
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shuihan20e
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 13:14:161楼 得分:0
    ?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lyguo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 15:58:002楼 得分:0
    你想问什么?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • youcunzai
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 16:17:093楼 得分:0
    "产品"展示?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lance
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 16:46:254楼 得分:0
    很多人问如何设置DBGrid当前行的颜色,这是一个解决的办法。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lyguo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 16:51:475楼 得分:0
    我用DBGRIDEH
    用到(Sender as TDBGridEH).DefaultDrawColumnCell(Rect,DataCol,Column,State);  这个时出错,提示类型不。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lance
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 19:44:496楼 得分:0
    如果有源代码,跟进去看看。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jin20000
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 11:23:597楼 得分:0
    哦了,还系顶一下!~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lw549
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 18:46:258楼 得分:0
    网上一搜一大把。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • i_am_different
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 21:36:039楼 得分:0
    顶你
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lance
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-26 03:52:0710楼 得分:0
    楼上的给搜一把看看。

    我上面给出的办法不是设置行选择,当失去焦点后还是显示设置的颜色。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lw549
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-26 08:58:4211楼 得分:0
    我不想继续回复这个帖子了,很无聊。

    http://www.google.com/search?client=opera&rls=en&q=DrawColumnCell&sourceid=opera&ie=utf-8&oe=utf-8
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lance
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-26 12:35:4612楼 得分:0
    你不如直接回复  www.google.com

    在DrawColumnCell事件里 如何能知道当前画的是哪一行?

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lance
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-26 12:36:3113楼 得分:0
    你不如直接回复 www.google.com
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lance
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-26 13:01:2714楼 得分:0
    呵呵。在DrawColumnCell事件中如何知道当前画的是哪行?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved