您的位置:首页 > 其它

ehlib控件资料2

2004-08-23 14:37 190 查看
自动填充网格列宽到网格客户区
设置AutoFitColWidths为True以自动重置列宽来设置网格的宽度等于客户区宽度。 MinAutoFitWidth 属性决定网格的最小宽度,列宽将会被重新计算。
3D或平面外观
使用 OptionsEh 属性来显示/隐藏固定的3D框架,冷区,页脚以及数据行。

使用 Flat 属性来设置用平面方式显示数据网格。

从多种格式导入/导出数据到TDBGridEh。
EhLib 的函数集可以从DBGridEh导出数据到Text, Csv, HTML, RTF, XLS以及其内部格式。它可以保存数据到流(TStream对象)或文件。

例子
Pascal: SaveDBGridEhToExportFile(TDBGridEhExportAsText,DBGridEh1,'c:/temp/file1.txt',False);
C++: SaveDBGridEhToExportFile(__classid(TDBGridEhExportAsText),DBGridEh1,"c://temp//file1.txt",false);

EhLib 的函数集可以从 Text以及其内部格式的数据导入到DBGridEh的数据集中。它可以从文件中读取数据或读取数据到流(TStream对象)。

其它特性
用lookup 编辑器,你可以在运行时清空(设置为Null) LookupKeyField 值。比如选择整个文本然后按Delete键。

冷区
冷区是数据网格列集左边显示的不可滚动的区域。与固定列不同的是,冷区的列可以获得编辑焦点。可以通过设置FrozenCols属性来设置右边不可滚动的列集。

增量搜索

TDBGridEh 允许用户在网格列中实现特定的“增量”搜索。当用户进入增量搜索时他可以显示字符以及网格,并且在当前的列中查找文本。使用 dghIncSearch 和 dghPreferIncSearch的值(在OptionsEh 选项中) 在数据网格中操作增量搜索。 dghIncSearch 值允许在数据网格中进行增量搜索。运行时你能够使用下面的键进行增量搜索:

Ctrl+F - 开始增量搜索。
Ctrl+Enter - 查找下一个匹配记录。
Ctrl+Shift+Enter - 查找前一个匹配记录。

如果OptionsEh选项中的 dghIncSearch 是只读的,那么网络将自动设置增量模式在第一次按键以及1.5秒后返回普通模式。 dghPreferIncSearch 值决定网格设置自动增量搜索模式在第一次按键时替代单元编辑。

水平或垂直滚动条
使用 VertSctollbar, HorzSctollbar 属性来显示/隐藏以及跟踪水平或垂直滚动条。

多选
TDBGridEh 允许在选定的区域上进行选择记录,列以及矩形区域等操作:

允许多选会影响下面这些属性:

Options选项中的dgMultiSelect属性 - 设置是否允许多选。

Options选项中的dghClearSelection 属性- 设置在用户移到下一个单元时是否清除已选记录。

Options选项中的EditActions属性 -设置用户可以在已选记录上执行哪些操作(比如,拷贝,剪切,删除,粘贴,全选等)。

Options选项中的AllowedSelections属性-设置允许选定记录的类型(比如,行,列,矩形区域等)。

Options选项中的Selection属性-设置一个当前的多选状态,已选记录,列或矩形区域以及存取它们的属性和函数。

从注册表或ini文件中保存或恢复网格和列的层次。
TDBGridEh 有一个常规设置来从注册表或ini文件中保存和恢复网络以及列的层次:

RestoreColumnsLayout - 从注册表中恢复列的次序,宽度,排序标志。

RestoreColumnsLayoutIni - 从ini文件中恢复列的次序,宽度,排序标志。

RestoreGridLayout - 从注册表中恢复列的次序,宽度,可视,排序标志,排序索引或行高。

RestoreGridLayoutIni - 从ini文件中恢复列的次序,宽度,可视,排序标志,排序索引或行高。

SaveColumnsLayout - 保存列的次序,宽度,排序标志到注册表中。

SaveColumnsLayoutIni - 保存列的次序,宽度,排序标志到ini文件中。

SaveGridLayout - 保存列的次序,宽度,可视,排序标志,排序索引或行高到注册表中。

SaveGridLayoutIni - 保存列的次序,宽度,可视,排序标志,排序索引或行高到ini文件中。

当前版本的TDBGridEh不支持的特性:
这个版本的TDBGridEh不支持下面的特性:

TDBGridEh 不能设置每一个数据窗口中单独行的行高。

TDBGridEh 不能象TreeView那样工作。它不能拥有节点和枝叶。

TDBGridEh 不能横向或纵向合并数据单元。

将已存在的TDBGrid组件转换为TDBGridEh组件:

尽管TDBGridEh并不是从TCustomDBGrid组件继承而来的,但是在TDBGridEh和TDBGrid中还是有一些相似的属性。

它允许仅用一点点代价来转换已存在的TDBGrid组件到TDBGridEh。

可以按照下面的提示来转转换已存在的TDBGrid组件到TDBGridEh:

在Delphi的IDE中打开包含有TDBGrid组件的应用程序。

设置视图方式为文本方式(Alt-F12)。

if key=VK_RETURN then //Key:回车
begin
if (grdDetailData.SelectedIndex=grdDetailData.Columns.Count-1) and not (dgRowSelect in grdDetailData.Options) then
BEGIN
if (dgEditing in grdDetailData.Options) and (grdDetailData.Row=grdDetailData.RowCount-1) then //从表GRID能进行编辑和当前光标焦点在最后一行时
acAddDetailExecute(self)
else
begin
grdDetailData.Row:=grdDetailData.Row+1; //改变光标焦点行到下一行(当为新增加时,这句不用运行
grdDetailData.SelectedIndex:=0 //改变光标焦点列到第一列
end;
END ELSE
BEGIN
grdDetailData.SelectedIndex:=grdDetailData.SelectedIndex+1;
while grdDetailData.Columns[grdDetailData.SelectedIndex].ReadOnly do
grdDetailData.SelectedIndex:=grdDetailData.SelectedIndex+1;
END;
key:=0;
end;
if key=VK_INSERT then //Insert键:新增一条记录
begin
acAddDetailExecute(self);
key:=0;
end;
if key=VK_DELETE then //Delte: 删除一条记录
begin
acDeleteDetailExecute(self);
key:=0;
end;

1、设置DBGRIDEH属性的FooterRowCount值为1;
2、设置DBGRIDEH属性的SumList的Active值为true;
3、设置你要求和的该列的Footer的valueType类型为fvtSum;
4、运行OK!
在DataSet打开时写:
DBGridEh1.Columns[0].Footer.value := IntToStr(DBGridEh1.DataSource.DataSet.RecordCount);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: