EhLib DBGridEh组件在Delphi中应用全攻略总结

【DBGridEh(增强型表格组件)功能详解】
DBGridEh组件无论在外观上还是功能上都非常类似Borland开发工具中现有的dbgrid组件,它除了提供dbgrid组件的全部功能外,还增加了下列新功能:
● 任意选择多行、列或矩形区域的数据.
● 为多列标题设定共同的父标题行.
● 表格底部(Footer) 区显示求和、计数和其它统计信息.
● 自动调整组件宽度与客户区域等宽.
● 设置标题行、数据行的高度.
● 超长的标题行、数据行文本自动折行处理.
● 标题行可作为按钮使用,并可选择是否显示排序标志符(降序△升序).
● 点击列标题可对当前列自动排序而无需编写代码.
● 能够自动设置删除超长文本显示不下的多余部分,并以省略号(…)代替.
● 自动搜索字段(Lookup)数据单元格以单、多列字段下拉列表形式显示.
● 自动搜索字段(Lookup)数据单元格可进行增量搜索.
● 可锁定任意列数在屏幕水平方向不滚动.
● 日期时间控件DateTime picker 可支持TDateField and TDateTimeField两种日期格式.
● 根据字段不同值显示关联的ImageList 对象图片组中的图片.
● 隐藏任意列.
● 显示3D风格的数据区、表尾区和锁定滚动列,制作3D外观表格.
● 显示Memo类型字段值.
● 除BOOLEAN型数据外,其它数据类型也可以检查框( checkbox )形式显示数据.
● 使用专门的函数和过程来存取以reg或ini文件格式保存的表格布局(包含各数据列表、数据列访问顺序、列宽、索引标识、行高等信息)文件。
● 通过设置数据单元格的hint和ToolTips属性,当移动鼠标到该单元格时,可以显示单元格容纳不下的文本内容.
● 将组件中数据导入/导出到Text, Csv, HTML, RTF, XLS 和内部数据等多种格式的文件中.

【Ehlib在 Delphi 7 中的安装】(我可是花了半天的力气才搞定的哦)Delphi 7中的安装方法
1.把 EhLib 中的common和DataService文件夹下的文件拷贝到 Delphi7 目录中.
2.在 TOOLS->Environment Options->Library->Library Path 中添入EHLIB路径。
3.打开新建文件夹中的EHLIB70.dpk,编译一下,但不要安装。
4.打开新建文件夹中的EhLibDataDrivers70.dpk,编译一下,但不要安装。
5.打开Ehlib中的DclEhLib70.dpk,编译,安装
6.打开Ehlib中的DclEhLibDataDrivers70.dpk,编译,安装(实际中不用也可以)
7.组件面板中出现一个EhLib的组件页。
8.打开附带的DEMOS1,编译并运行,测试安装成功。

【DBGridEh控件的页脚属性怎么设】
1、将dBGridEh.FooterRowCount := 1
2、将DBGridEh.SumList.Active := True;
3、将Columns[要求和的字段].Footer.ValueType := vtSum;
就行了,最后要注意,在FormCloseQuery事件中,一定要将SumList.Active := False,因为在数据集中的数据多了以后,FormClose会让DBGridEh释放所有EhLib资源,会使得退出很慢,所以将SumList.Active := False不会引起退出很慢(还没有试)。

【实现DBGridEh隔行分色显示】
procedure TForm1.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh;
AFont: TFont; var Background: TColor; State: TGridDrawState);
begin
  if DBGridEh1.SumList.RecNo mod 2 = 1 then
    Background := clinfobk
  else
    Background := RGB(238, 238, 238);
end;

【DBGridEh在某些条件下某行显示特定颜色】
procedure TForm1.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh; AFont: TFont; var Background: TColor; State: TGridDrawState);
begin
//在 name 字段值为 aaa 的行设置行背景色(ado 设置情况下)
if ADOQuery1.FieldByName('name').AsString = 'aaa' then
      Background := $00FFC4C4
//在 xm 字段值为 Li ming 的行设置行背景色(bde 设置情况下)
else if DBGridEh1.DataSource.DataSet.FieldByName('xm').AsString = 'Li ming' then
     Background := $00FFC4C4
else
     Background := $00FFDDDD;
end;

【实现DBGridEh全选】
procedure TForm1.N_CopyPolListClick(Sender: TObject);
begin
  if (ActiveControl is TDBGridEh) then
    with TDBGridEh(ActiveControl) do
      if CheckSelectAllAction and (geaSelectAllEh in EditActions) then
        Selection.SelectAll;
end;

【Ehlib的DBGridEh控件输出文件到 EXCEL】(其实EHLIB的DEMO1中已有)
procedure TForm1.N_SaveSelectionClick(Sender: TObject);
var
  ExpClass: TDBGridEhExportClass;
  Ext: String;
begin
  SaveDialog1.FileName := 'file1';
  if (ActiveControl is TDBGridEh) then
    if SaveDialog1.Execute then
    begin
      case SaveDialog1.FilterIndex of
        1: begin
             ExpClass := TDBGridEhExportAsText;
             Ext := 'txt';
           end;
        2: begin
             ExpClass := TDBGridEhExportAsCSV;
             Ext := 'csv';
           end;
        3: begin
             ExpClass := TDBGridEhExportAsHTML;
             Ext := 'htm';
           end;
        4: begin
             ExpClass := TDBGridEhExportAsRTF;
             Ext := 'rtf';
           end;
        5: begin
             ExpClass := TDBGridEhExportAsXLS;
             Ext := 'xls';
           end;
      else
        ExpClass := nil;
        Ext := '';
      end;
      if ExpClass <> nil then
      begin
        if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <>
           UpperCase(Ext) then
          SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
        SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl),
             SaveDialog1.FileName,False);
      end;
    end;
end;

【在DBGridEh中直接点击title就可按点击的那个字段排序的方法】
procedure TForm1.DBGridEh1TitleClick(Column: TColumnEh);
var
  sortstring: string; //排序列
begin
  //进行排序
  with Column do
  begin
    if FieldName = '' then
      Exit;
    if (Title.SortMarker = smNoneEh) or (Title.SortMarker = smDownEh) then
    begin
      sortstring := Column.FieldName + ' ASC';;
      Title.SortMarker := smUpEh;
    end
    else
    begin
      sortstring := Column.FieldName + ' DESC';
      Title.SortMarker := smDownEh;
    end;
    try
      ADOQryPolicyList.Sort := sortstring; //dataset为实际数据集变量名
    except
      MessageBox(Handle,'排序出错,请核实后重试!', '提示', MB_ICONError);
    end;
  end;
end;
注意:1.在窗体上放置一个DBGridEh组件,并将其连接到相应的 BDE 数据集;
2.将该组件的[OptionsEn]中的 dgAutoSortMarking 属性设置为 True;
3.双击该组件,在其弹出的属性编辑器中添加相关字段;
4.将要排序的字段的属性列表的 [Title]的 TitleButton 属性设置为 True;
5.最后,千万不要忘了在 uses 子句中加上 EhlibBDE单元。

【DBGridEh从注册表或ini文件中保存或恢复网格和列的层次】
    TDBGridEh 有一个常规设置来从注册表或ini文件中保存和恢复网络以及列的层次:
      RestoreColumnsLayout - 从注册表中恢复列的次序,宽度,排序标志。
      RestoreColumnsLayoutIni - 从ini文件中恢复列的次序,宽度,排序标志。
      RestoreGridLayout - 从注册表中恢复列的次序,宽度,可视,排序标志,排序索引或行高。
      RestoreGridLayoutIni - 从ini文件中恢复列的次序,宽度,可视,排序标志,排序索引或行高。
      SaveColumnsLayout - 保存列的次序,宽度,排序标志到注册表中。
      SaveColumnsLayoutIni - 保存列的次序,宽度,排序标志到ini文件中。
      SaveGridLayout - 保存列的次序,宽度,可视,排序标志,排序索引或行高到注册表中。
      SaveGridLayoutIni - 保存列的次序,宽度,可视,排序标志,排序索引或行高到ini文件中。
举例如下:
//存储Grid格式ini
function SaveGridIni(ADBGridEhNameStr: string;ADBGridEh:TDBGridEh): Boolean;
var
  IniFileNameStr:string;
begin
    IniFileNameStr := ExtractFileDir(ParamStr(0)) + '\' + 'DBGirdConfig.ini';
    ADBGridEh.SaveGridLayoutIni(IniFileNameStr,ADBGridEhNameStr,False);
end;

//加载读取Grid格式ini
function RestoreGridIni(ADBGridEhNameStr: string;ADBGridEh:TDBGridEh): Boolean;
var
  IniFileNameStr:string;
  RestoreParams: TDBGridEhRestoreParams;
begin
    IniFileNameStr := ExtractFileDir(ParamStr(0)) + '\' + 'DBGirdConfig.ini';
    ADBGridEh.RestoreGridLayoutIni(IniFileNameStr,ADBGridEhNameStr,RestoreParams);
end;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
EhLib.VCL 9.5内部版本9.5.012专业版。 ---------------------------------------------- 该库包含Borland Delphi版本7、9的组件和类。 Developer Studio 2006,Delphi 2007,Embarcadero RAD Studio 2009-XE10.3,Lazarus。 目录 ----------------- 总览 安装库 安装帮助 示范节目 注册和价格 其他资讯 关于作者 从哪儿开始。 ------------------- 从主要的Demo项目开始概述库 。\ Demos \ Bin \ MainDemo.Exe。 (已编译的演示文件在该库的评估版可用) 如果您使用了库的早期版本,则可以阅读摘要 的新功能和更改的内容history-eng.html。 此版本库有关新功能的更多详细信息 可以在文件找到-关于EhLib 9.5 Eng.doc 要在IDE安装该库的新版本,请使用安装程序 。\ Installer \ EhLibInstaller.exe 如果安装时有任何问题,请写信给ehlib支持 地址support@ehlib.com 您还可以按照以下说明在库IDE手动安装文件 第2章安装库 安装后,请确保所有已安装组件的可操作性。 为此,请打开IDE,编译并启动一个主要的演示项目。 。\ Demos \ MainDemo \ Project1_XE2.dpr 阅读下一个文件,以获取有关使用库组件的完整说明: 。\ Hlp \ ENG \“ EhLib-用户指南.doc” 在文件阅读有关EhLib for Lazarus的信息-Lazarus \ readme.txt 总览 -------- 该库包含几个组件和对象。 TDBGridEh组件 TDBGridEh提供TDBGrid的所有功能 并添加了一些新功能,如下所示: 允许选择记录,列和矩形区域。 可以对应于多个/所有列的特殊标题。 能够显示总和/计数/其他字段值的页脚。 自动调整列大小以将网格宽度设置为等于客户端宽度。 能够更改行和标题的高度。 允许自动断单行长标题和数据行 到多行。 标题可以充当按钮,并可以选择显示排序标记。 自动排序标记。 能够用省略号截断长文本。 查找列表可以显示几个字段。 在查找字段进行增量搜索。 冻结的列。 DateTime选择器支持TDateField和TDateTimeField。 允许根据字段值显示TImageList的位图。 允许隐藏和跟踪水平或垂直滚动​​条。 允许隐藏列。 允许显示冻结,页脚和数据行的3D框架。 允许绘制备忘字段。 多行就地编辑器。 比例滚动与数据集的排序无关。 自动显示布尔字段的复选框。允许显示 其他类型字段的复选框。 具有保存和还原布局的程序(可见列,列 注册表或ini文件的顺序,列宽,排序标记,行高)。 允许显示提示(工具提示)以显示单元格不适合的文本。 允许将数据导出为Text,Csv,HTML,RTF,XLS和内部格式。 允许从文本和内部格式导入数据。 可以对各种数据集的数据进行排序。 可以过滤各种数据集的数据。 当DBGridEh连接到TMemTable类型的数据集时,它允许: 在不移动活动记录的情况下查看所有数据。 显示TMemTable记录的树型结构。 在SubTitle过滤器的下拉列表自动形成值列表。 根据所选库伦创建分组记录。 TDBVertGridEh组件 在“垂直方向”显示数据集的一条记录的组件。 有一个特殊的列来显示字段标题 可以像DBGridEh一样自定义就地编辑器和单元格数据。 TDBLookupComboboxEh组件 提供TDBLookupCombobox的所有功能并添加 几个新功能如下: 可以有平面样式。 允许只将值分配给KeyValue属性 显示文本属性。 允许将值键入(分配)到数据列表未包含的Text属性 (样式= csDropDownEh)。 允许将KeyValue和Text保持为互不影响的值。 当KeyField,ListField,ListSource,DataField和DataSource生效 属性为空。 下拉列表可以: 显示标题 有上浆力, 自动将宽度设置为列表字段DisplayWidth之和(宽度= -1), 用户按下按键时自动掉线。 编辑按钮可以: 显示下拉,省略号或位图图像。 有指定的宽度。 还有其他事件:OnKeyValueChanged,OnButtonClick。 TDBSumList组件组件用于总计一个记录的记录的总数和数量。 TDataSet具有动态更改。组件保留TDBSum的列表 对象,其包含组操作的类型(goSum或goCount) 和名称总和字段(无需goCount字段名称)。 TPrintDBGridEh组件 TPrintDBGridEh提供用于预览和预览的属性和例程。 具有以下功能的TDBGridEh组件的打印: 能够垂直扩展行,直到打印所有文本。 缩放网格以使其适合页面宽度的能力。 能够打印/预览网格标题。 能够打印/预览页面标题和页面页脚 指定当前页面,当前日期,当前时间和/或静态的宏 文本。 自动打印/预览TDBGridEh的选定区域 不为空。 能够在网格之前和之后打印/预览富文本。 TPreviewBox组件 TPreviewBox使您可以创建可自定义的运行时预览。 TPrinterPreview对象 TPrinterPreview允许您将可打印数据记录在缓冲区以进行跟踪 将它们输出到屏幕上并发送到打印机。TPrinterPreview具有所有功能,并且 属性与TPrinter对象的属性相同。您可以类似地使用TPrinterPreview对象 TPrinter的功能,除了一些细节。在TPrinter Printer.Canvas.Handle和 Printer.Handle相同,但在TPrinterPreviewPrinterPreview.Canvas.Handle 表示图元文件,其的数据和PrinterPreview.Handle的内容相同 代表Printer.Handle。这意味着您必须使用 用于绘制操作的PrinterPreview.Canvas.Handle(DrawText,DrawTexteEx等) 并在返回有关以下信息的函数使用PrinterPreview.Handle 打印机功能(GetDeviceCaps等)。全局功能PrinterPreview 返回默认的PrinterPreview对象,并以默认预览形式显示数据。 TDBEditEh组件 表示可以显示和编辑字段的单行或多行编辑控件 在数据集或可以用作非数据感知的编辑控件。 TDBDateTimeEditEh组件 表示可以显示和编辑的单行日期或时间编辑控件 数据集的日期时间字段,或可用作非数据感知的编辑控件。 TDBComboBoxEh组件 表示结合了编辑框的单行或多行编辑控件 带有可滚动列表,并且可以显示和编辑数据集的字段,或者可以 用作非数据感知组合编辑控件。 TDBNumberEditEh组件 表示可以显示和编辑数字的单行数字编辑控件 数据集的字段或可以用作非数据感知的编辑控件。 TPropStorageEh,TIniPropStorageManEh,TRegPropStorageManEh组件 组件实现了在设置存储组件属性的技术 存储,如ini文件,注册表等。 TMemTableEh组件 数据集,将数据保存在内存。它可能考虑为 记录。 此外,它: 支持一个特殊的接口,该接口允许DBGridEh组件查看所有 数据而不移动活动记录。 允许从TDataDriverEh对象(DataDriver属性)获取数据。 允许卸载更改回DataDriver,可操作或推迟(在 CachedUpdates属性的相关性)。 允许在客户端上创建主/明细关系(过滤记录) 或在外部源上(更新参数[Params]并需要数据 从DataDriver)。 允许一次(无动态支持)排序数据,包括 计算和查找字段。 允许在设计时创建和填充数据,并将数据保存在的dfm文件 形成。 允许以树的方式进行记录。每条记录可以有一条记录 元素分支和本身是其他父母记录的元素。 组件TDBGridEh支持显示这些组件的树型结构 记录。 允许连接到其他TMemTableEh的内部阵列(通过 ExternalMemData属性)并使用其数据:排序,过滤,编辑。 具有用于在列表的一列请求所有唯一值列表的接口 记录数组,忽略数据集的本地过滤器。TDBGridEh使用此 属性,用于自动填充字幕的DropDownBox的列表 过滤单元。 TDataDriverEh组件 执行两项任务: 将数据传送到TMemTableEh。 处理TMemTableEh的更改记录(将它们记录在其他数据集, 或调用事件以处理程序的更改)。 TSQLDataDriverEh 具有四个TSQLCommandEh类型的对象的DataDriver:SelectCommand, DeleteCommand,InsertCommand,UpdateCommand,GetrecCommand。 TSQLDataDriverEh无法将查询传输到服务器,但会调用全局 (对于应用程序)执行SQL必须编写的事件 服务器上的表达式。 TBDEDataDriverEh,TIBXDataDriverEh,TDBXDataDriverEh和TADODataDriverEh组件。 这些是SQLDataDrivers,可以使用以下命令将查询传递到服务器 数据访问的相应驱动程序。 -------------------- 2.安装库 -------------------- -------------------- 2.1自动安装库 -------------------- 从“安装程序”文件夹运行EhLibInstaller.exe程序以在以下位置安装EhLib Delphi / C ++ Builder IDE。该程序创建文件夹以保持EhLib二进制 和其他重新整理的文件,将重新整理的文件复制到创建的文件夹, 编译程序包,在IDE注册程序包并编写重新格式化的路径 在注册表。 如果您具有可执行的安装程序(例如,EhLibSetupD7Eval.exe) 那么您只需要运行程序并遵循安装过程即可。自动设置 将所有单元写入必要的目录,在IDE安装软件包和帮助文件。 -------------------- 2.2手动安装库 ------------------- 按照以下说明从EhLib归档文件安装文件: - 2.2.1。对于RAD Studio XE2(Delphi)或更高版本: -------------------

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值