网上文摘 小说 Flash游戏 最近更新 下载排行 资源分类 下载指南
经典编程资源 精彩不容错过
设为首页
加入收藏
联系我们
当前位置:Delphi园地技巧文章控件使用Ehlib → 如何使用 Ehlib 实现自动排序
如何使用 Ehlib 实现自动排序
日期:2005年12月4日 作者:archonwang 人气: 查看:[大字体 中字体 小字体]
在 Ehlib 的 DataService 文件夹下提供了一些可以使数据集实现自动排序的文件。TDBGridEh 使用这些文件中的相关对象可以实现当排序标记发生变化时实现自动排序。

  如果你改变了数据网格及标题的排序标记而没有书写 OnSortMarkingChanged 事件,数据网格将尝试自动进行数据排序。DBGridEhDataService 尝试通过 GetDatasetFeaturesForDataSet 查找 TDataSet 中可以排序的特定的对象。正如你所知道的,TDataSet 不支持数据排序,但它的派生对象 TQuery 或 TClientDataSet 却允许实现数据排序。使用过程 RegisterDatasetFeaturesEh ,你可以注册 TDatasetFeaturesEhClass 类,该类可以实现对 TQuery, TADOQuery 以及 TClientDataSet 对象进行排序。简单地通过 uses 子句添加 Ehlib...(EhlibBDE,EhlibADO,EhlibCDS)的单元之一到你的工程的任意单元中,与它们相连的数据网格将自动对该数据集进行排序。 EhLibBDE, EhLibADO, EhLibCDS 通过在单元数据集中调用 RegisterDatasetFeaturesEh 过程来实现初始化。对于其它数据集类型,你必须编写、并注册可以实现该数据集排序的新对象。书写过程 T[你的数据集]DatasetFeaturesEh.ApplySorting ,你可以存取那些使用了 SortMarkedColumns 属性的列以实现直接排序。你可以查看 DbUtilsEh 单元中的示例以明白如何编写T[你的数据集]DatasetFeaturesEh 类及查看 EhLibBDE 单元以明白如何注册 T[你的数据集]DatasetFeaturesEh 类。

引擎      数据集      单元文件

BDE      TQuery      EhLibBDE
ADO      TADOQuery    EhLibADO
ClientDataSet TClientDataSet  EhLibCDS
DBExpress   TSQLQuery    EhLibDBX
InterBase   Express TIBQuery EhLibIBX

【译【者注】:
  实际上,实现该功能非常简单(以下我以BDE为例说明如何实现自动排序):
  1.在窗体上放置一个 DBGridEh 组件,并将其连接到相应的 BDE 数据集;
  2.将该组件的[OptionsEn]中的 dgAutoSortMarking 属性设置为 True;
  3.双击该组件,在其弹出的属性编辑器中添加相关字段;
  4.将要排序的字段的属性列表的 [Title]的 TitleButton 属性设置为 True;
  5.最后,千万不要忘了在 uses 子句中加上 EhlibBDE单元。

好了,使用上面的方法,你会发现原来通过 Ehlib 实现数据的自动排序居然如些简单!

(出处:http://www.delphibbs.com/keylife/iblog_show.asp?xid=4700)

相关文章:
 → 特别推荐
 → 热点TOP10
关于我们 | 广告服务 | 发布资源 | 联系站长 Copyright © 2002-2006 Delphi园地 All Rights Reserved