CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

增加自动排序和滚轮的DBGrid

楼主WhoAmI999(三九二十七)2005-04-02 22:39:54 在 Delphi / VCL组件开发及应用 提问

unit   MyDBGrid;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Classes,   Controls,   Grids,   DBGrids,   ADODB;  
   
  type  
      TMyDBGrid   =   class(TDBGrid)  
      private  
          {   Private   declarations   }  
      protected  
          {   Protected   declarations   }  
          procedure   TitleClick(Column:   TColumn);   override;  
   
          function   DoMouseWheelDown(Shift:   TShiftState;   MousePos:   TPoint):   Boolean;   override;  
          function   DoMouseWheelUp(Shift:   TShiftState;   MousePos:   TPoint):   Boolean;   override;  
      public  
          {   Public   declarations   }  
      published  
          {   Published   declarations   }  
      end;  
   
  procedure   Register;  
   
  implementation  
   
  procedure   Register;  
  begin  
      RegisterComponents('Samples',   [TMyDBGrid]);  
  end;  
   
   
  procedure   TMyDBGrid.TitleClick(Column:   TColumn);  
  begin  
          inherited;  
   
          if   not   assigned(DataSource)   then  
                  exit;  
          if   not   Assigned(DataSource.DataSet)   then  
                  exit;  
          if   not   (DataSource.DataSet   is   TADOQuery)   then  
                  exit;  
          if   not   DataSource.DataSet.Active   then  
                  exit;  
   
          if   (DataSource.DataSet   as   TADOQuery).Sort   =   ''   then  
                  try  
                          (DataSource.DataSet   as   TADOQuery).Sort   :=   column.FieldName   +   '   ASC'  
                  except  
                  end  
          else   begin  
                  try  
                          if   (DataSource.DataSet   as   TADOQuery).Sort   =   column.FieldName   +   '   ASC'   then  
                                  (DataSource.DataSet   as   TADOQuery).Sort   :=   column.FieldName   +   '   DESC'  
                          else   (DataSource.DataSet   as   TADOQuery).Sort   :=   column.FieldName   +   '   ASC';  
                  except  
                  end;  
          end;  
  end;  
   
  function   TMyDBGrid.DoMouseWheelDown(Shift:   TShiftState;   MousePos:   TPoint):   Boolean;  
  begin  
          if   not   assigned(DataSource)   then  
                  exit;  
          if   not   Assigned(DataSource.DataSet)   then  
                  exit;  
          if   not   (DataSource.DataSet   is   TADOQuery)   then  
                  exit;  
          if   not   DataSource.DataSet.Active   then  
                  exit;  
          if   DataSource.DataSet.IsEmpty   then  
                  exit;  
   
          //DataSource.DataSet.MoveBy(3);  
          DataSource.DataSet.Next;  
  end;  
   
  function   TMyDBGrid.DoMouseWheelUp(Shift:   TShiftState;   MousePos:   TPoint):   Boolean;  
  begin  
          if   not   assigned(DataSource)   then  
                  exit;  
          if   not   Assigned(DataSource.DataSet)   then  
                  exit;  
          if   not   (DataSource.DataSet   is   TADOQuery)   then  
                  exit;  
          if   not   DataSource.DataSet.Active   then  
                  exit;  
          if   DataSource.DataSet.IsEmpty   then  
                  exit;  
   
          //DataSource.DataSet.MoveBy(-3);  
          DataSource.DataSet.Prior;  
  end;  
   
  end.  
  问题点数:0、回复次数:1Top

1 楼tengxiang05(一座桥)回复于 2005-04-04 23:24:47 得分 0

好东东Top

相关问题

  • 如何让DBGrid不自动排序
  • 还是dbgrid排序
  • DBGRID标题排序!
  • dbgrid排序问题
  • dbgrid排序问题
  • 如何对dbgrid排序?
  • DBGrid如何进行排序?
  • dbgrid中的字段排序
  • 关于DBGrid排序问题
  • DBGRID排序的问题

关键词

  • active
  • datasource
  • dataset
  • tmydbgrid
  • mousepos
  • tshiftstate
  • then exit
  • tpoint
  • fieldname+
  • assigned

得分解答快速导航

  • 帖主:WhoAmI999

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo