EhLib DBGridEh组件在Delphi中应用全攻略总结
来源:互联网 发布:mfc tcp socket 编程 编辑:程序博客网 时间:2024/05/01 18:52
======================================================
注:本文源代码点此下载
======================================================
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
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;
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- EhLib DBGridEh组件在Delphi中应用全攻略总结
- EhLib DBGridEh组件在Delphi中应用全攻略总结
- EhLib DBGridEh组件在Delphi中应用全攻略总结
- DBGRIDEH 组件在Borland开发工具中应用全攻略
- DBGRIDEH 组件在Borland开发工具中应用全攻略
- DBGridEH 组件在Borland开发工具中应用全攻略
- DBGRIDEH 组件在Borland开发工具中应用全攻略
- DBGRIDEH 组件在Borland开发工具中应用全攻略
- DBGRIDEH 组件在Borland开发工具中应用全攻略 (转)
- Ehlib 在 Delphi 7 中的安装(dbgrideh)
- Delphi中ehlib(dbgridEH)多行选择
- Delphi关于EhLib组件中DBGridEh进行统计计算的资料收集
- EhLib使用全攻略
- ehlib使用全攻略
- DELPHI组件安装全攻略
- DELPHI组件安装全攻略
- DELPHI组件安装全攻略
- DELPHI组件安装全攻略
- Delphi ArcEngine 创建独立值专题
- HTML:让表单 文本框 只读,不可编辑的方法
- Delphi部分函数、命令、属性中文说明
- Android R.java文件丢失
- AJAX开发简略
- EhLib DBGridEh组件在Delphi中应用全攻略总结
- Ajax的问题
- Linux (Centos)下安装java+apache+mysql+php(非yum安装)
- ASP.NET AJAX Beta 2发布
- 使用Eclipse运行Java代码调用JDBC读写MySQL中文变成问号的终极解决办法
- 一步一步学Silverlight 2系列(23):Silverlight与HTML混合之无窗口模式
- ASP.NET AJAX入门系列
- Delphi的IDE增强控件CodeRush
- Delphi三层数据库开发应用